home *** CD-ROM | disk | FTP | other *** search
/ Aminet 30 / Aminet 30 (1999)(Schatztruhe)[!][Apr 1999].iso / Aminet / dev / lang / SmallEiffel.lha / SmallEiffel / bin_c / compile_to_jvm23.c < prev    next >
C/C++ Source or Header  |  1998-12-22  |  67KB  |  3,085 lines

  1. /*
  2. -- ANSI C code generated by :
  3. -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.79)      --
  4. -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
  5. -- Dominique COLNET and Suzanne COLLIN -    colnet@loria.fr     --
  6. --                 http://www.loria.fr/SmallEiffel              --
  7. */
  8. #include "compile_to_jvm.h"
  9. /*No:E_TRUE.static_value*/
  10.  
  11.  
  12. T0* r171type_boolean(void){
  13. if(fBC12type_boolean==0){
  14. fBC12type_boolean=1;
  15. {T268*n=malloc(sizeof(*n));
  16. *n=M268;
  17. r268make(n,NULL);
  18. oBC12type_boolean=(T0*)n;
  19. }
  20. }
  21. return oBC12type_boolean;}
  22. /*No:E_TRUE.is_static*/
  23. /*No:E_TRUE.can_be_dropped*/
  24. /*No:E_TRUE.is_manifest_string*/
  25. /*No:E_TRUE.start_position*/
  26.  
  27.  
  28. T0* r171add_comment(T171* C,T0* a1){
  29. T0* R=NULL;
  30. /*[IF*/
  31. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  32. R=(T0*)C;
  33. }
  34. else{
  35. {T234*n=malloc(sizeof(*n));
  36. *n=M234;
  37. r234make(n,(T0*)C,a1);
  38. R=(T0*)n;
  39. }
  40. }
  41. /*FI]*/
  42. return R;
  43. }
  44. /*No:E_TRUE.compile_target_to_jvm*/
  45. /*No:E_TRUE.to_integer*/
  46. /*No:E_TRUE.use_current*/
  47. /*No:E_TRUE.jvm_branch_if_true*/
  48. /*No:E_TRUE.to_runnable*/
  49.  
  50.  
  51. T2 r171compile_to_jvm_into(T0* a1){
  52. T2 R=0;
  53. R=r171standard_compile_to_jvm_into(a1);
  54. return R;
  55. }
  56.  
  57.  
  58. T2 r171isa_dca_inline_argument(void){
  59. T2 R=0;
  60. /*[IF*/
  61. {/*AT*/R=-(1);
  62. }
  63. /*FI]*/
  64. return R;
  65. }
  66. /*No:E_TRUE.is_pre_computable*/
  67. /*No:E_TRUE.fz_iinaiv*/
  68. /*No:E_TRUE.result_type*/
  69.  
  70.  
  71. void r171error(T0* a1,T0* a2){
  72. r21add_position(a1);
  73. r21error((T21*)(oBC12eh),a2);
  74. }
  75. /*No:E_TRUE.make*/
  76. /*No:E_TRUE.compile_to_jvm_assignment*/
  77. /*No:E_TRUE.is_current*/
  78.  
  79.  
  80. T2 r171standard_compile_to_jvm_into(T0* a1){
  81. T2 R=0;
  82. /*[IRF3.2compile_to_jvm*//*[IRF3.4opcode_iconst_1*/r28opcode((T28*)(oBC12code_attribute),4,1);
  83. /*]*/
  84. /*]*/
  85. R=X52jvm_convert_to(/*(IRF4.4run_type*/((T0*)((T268*)/*(IRF4.8result_type*/r171type_boolean()/*)*/))/*)*/,a1);
  86. return R;
  87. }
  88. /*No:E_TRUE.is_void*/
  89. /*No:E_TRUE.compile_to_jvm_old*/
  90. /*No:E_TRUE.jvm_assign*/
  91.  
  92.  
  93. T2 r171jvm_branch_if_false(void){
  94. T2 R=0;
  95. /*[IRF3.4opcode_iconst_1*/r28opcode((T28*)(oBC12code_attribute),4,1);
  96. /*]*/
  97. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  98. return R;
  99. }
  100. /*No:E_TRUE.compile_to_jvm*/
  101. /*No:E_TRUE.afd_check*/
  102. /*No:E_TRUE.is_result*/
  103. /*No:E_OLD.static_value*/
  104. /*No:E_OLD.is_static*/
  105. /*No:E_OLD.is_manifest_string*/
  106.  
  107.  
  108. T0* r149start_position(T149* C){
  109. T0* R=NULL;
  110. R=X109start_position((C)->_expression/*4*/);
  111. return R;
  112. }
  113.  
  114.  
  115. T0* r149add_comment(T149* C,T0* a1){
  116. T0* R=NULL;
  117. /*[IF*/
  118. if(((a1)==((void*)(NULL)))||((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)==(0))){
  119. R=(T0*)C;
  120. }
  121. else{
  122. {T234*n=malloc(sizeof(*n));
  123. *n=M234;
  124. r234make(n,(T0*)C,a1);
  125. R=(T0*)n;
  126. }
  127. }
  128. /*FI]*/
  129. return R;
  130. }
  131.  
  132.  
  133. T2 r149to_integer(T149* C){
  134. T2 R=0;
  135. r149error(r149start_position(C),((T0*)ms13_45846));
  136. return R;
  137. }
  138.  
  139.  
  140. T6 r149use_current(T149* C){
  141. T6 R=0;
  142. R=X109use_current((C)->_expression/*4*/);
  143. return R;
  144. }
  145. /*No:E_OLD.jvm_branch_if_true*/
  146. /*No:E_OLD.id*/
  147.  
  148.  
  149. T0* r149to_runnable(T149* C,T0* a1){
  150. T0* R=NULL;
  151. T0* _exp=NULL;
  152. /*[IF*/
  153. if(((C)->_current_type/*8*/)==((void*)(NULL))){
  154. C->_current_type=a1;
  155. _exp=X109to_runnable((C)->_expression/*4*/,a1);
  156. /*[IF*/
  157. if((_exp)==((void*)(NULL))){
  158. r149error(r149start_position(C),((T0*)ms149_24605));
  159. }
  160. else{
  161. C->_expression=_exp;
  162. }
  163. /*FI]*/
  164. R=(T0*)C;
  165. }
  166. else{
  167. {T149*n=malloc(sizeof(*n));
  168. *n=M149;
  169. /*[IRF3.3make*/((((T149*)(n)))->_expression)=((C)->_expression/*4*/);
  170. /*]*/
  171. R=(T0*)n;
  172. }
  173. R=r149to_runnable(((T149*)R),a1);
  174. }
  175. /*FI]*/
  176. return R;
  177. }
  178.  
  179.  
  180. T2 r149compile_to_jvm_into(T149* C,T0* a1){
  181. T2 R=0;
  182. R=r149standard_compile_to_jvm_into(C,a1);
  183. return R;
  184. }
  185. /*No:E_OLD.is_pre_computable*/
  186. /*No:E_OLD.fz_iinaiv*/
  187.  
  188.  
  189. T0* r149result_type(T149* C){
  190. T0* R=NULL;
  191. R=X109result_type((C)->_expression/*4*/);
  192. return R;
  193. }
  194.  
  195.  
  196. void r149standard_compile_target_to_jvm(T149* C){
  197. r149compile_to_jvm(C);
  198. X52jvm_check_class_invariant(r149result_type(C));
  199. }
  200. /*No:E_OLD.compile_to_jvm_assignment*/
  201.  
  202.  
  203. void r149compile_to_jvm_old(T149* C){
  204. T0* _rt=NULL;
  205. T0* _e=NULL;
  206. _e=(C)->_expression/*4*/;
  207. _rt=X52run_type(X109result_type(_e));
  208. C->_id=r28extra_local((T28*)(oBC12code_attribute),_rt);
  209. X109compile_to_jvm(_e);
  210. X52jvm_write_local(_rt,(C)->_id/*12*/);
  211. }
  212. /*No:E_OLD.jvm_assign*/
  213. /*No:E_OLD.jvm_branch_if_false*/
  214.  
  215.  
  216. void r149compile_to_jvm(T149* C){
  217. X52jvm_push_local(X109result_type((C)->_expression/*4*/),(C)->_id/*12*/);
  218. }
  219. /*No:E_OLD.is_result*/
  220. /*No:E_OLD.can_be_dropped*/
  221. /*No:E_OLD.expression*/
  222. /*No:E_OLD.compile_target_to_jvm*/
  223. /*No:E_OLD.isa_dca_inline_argument*/
  224. /*No:E_OLD.current_type*/
  225.  
  226.  
  227. T2 r149jvm_standard_branch_if_false(T149* C){
  228. T2 R=0;
  229. r149compile_to_jvm(C);
  230. R=r28opcode_ifeq((T28*)(oBC12code_attribute));
  231. return R;
  232. }
  233.  
  234.  
  235. void r149error(T0* a1,T0* a2){
  236. r21add_position(a1);
  237. r21error((T21*)(oBC12eh),a2);
  238. }
  239. /*No:E_OLD.make*/
  240. /*No:E_OLD.is_current*/
  241.  
  242.  
  243. T2 r149standard_compile_to_jvm_into(T149* C,T0* a1){
  244. T2 R=0;
  245. r149compile_to_jvm(C);
  246. R=X52jvm_convert_to(X52run_type(r149result_type(C)),a1);
  247. return R;
  248. }
  249. /*No:E_OLD.is_void*/
  250.  
  251.  
  252. T2 r149jvm_standard_branch_if_true(T149* C){
  253. T2 R=0;
  254. r149compile_to_jvm(C);
  255. R=r28opcode_ifne((T28*)(oBC12code_attribute));
  256. return R;
  257. }
  258.  
  259.  
  260. void r149afd_check(T149* C){
  261. X109afd_check((C)->_expression/*4*/);
  262. }
  263. /*No:WRITABLE_ATTRIBUTE.base_class*/
  264.  
  265.  
  266. T0* r319start_position(T319* C){
  267. T0* R=NULL;
  268. R=X50start_position(/*(IRF4.6first_name*/r87item(((T87*)((C)->_names/*8*/)),1)/*)*/);
  269. return R;
  270. }
  271.  
  272.  
  273. T6 r319is_merge_with(T319* C,T0* a1,T0* a2){
  274. T6 R=0;
  275. R=1;
  276. /*[IF*/
  277. if(((C)->_result_type/*20*/)!=((void*)(X95result_type(a1)))){
  278. /*[IF*/
  279. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
  280. R=0;
  281. }
  282. /*FI]*/
  283. }
  284. /*FI]*/
  285. /*[IF*/
  286. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X95arguments(a1)))){
  287. /*[IF*/
  288. {/*AT*/R=0;
  289. }
  290. /*FI]*/
  291. }
  292. /*FI]*/
  293. /*[IF*/
  294. if(R){
  295. /*[IF*/
  296. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  297. R=X52is_a_in((C)->_result_type/*20*/,X95result_type(a1),a2);
  298. }
  299. /*FI]*/
  300. /*[IF*/
  301. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  302. R=r191is_a_in((T191*)(/*(IRF4.1arguments*/NULL/*)*/),X95arguments(a1),a2);
  303. }
  304. /*FI]*/
  305. /*[IF*/
  306. if(!(R)){
  307. R=1;
  308. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  309. /*]*/
  310. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  311. /*]*/
  312. /*]*/
  313. /*[IF*/
  314. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  315. R=X52is_a_in(X95result_type(a1),(C)->_result_type/*20*/,a2);
  316. }
  317. /*FI]*/
  318. /*[IF*/
  319. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  320. R=r191is_a_in((T191*)(X95arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  321. }
  322. /*FI]*/
  323. }
  324. /*FI]*/
  325. }
  326. /*FI]*/
  327. /*[IF*/
  328. if(R){
  329. r319merge_header_comments(C,a1);
  330. }
  331. /*FI]*/
  332. return R;
  333. }
  334. /*No:WRITABLE_ATTRIBUTE.first_name*/
  335. /*No:WRITABLE_ATTRIBUTE.em1*/
  336. /*No:WRITABLE_ATTRIBUTE.set_isa_redefinition*/
  337. /*No:WRITABLE_ATTRIBUTE.header_comment*/
  338. /*No:WRITABLE_ATTRIBUTE.names*/
  339. /*No:WRITABLE_ATTRIBUTE.result_type*/
  340. /*No:WRITABLE_ATTRIBUTE.code_require*/
  341. /*No:WRITABLE_ATTRIBUTE.make_e_feature*/
  342.  
  343.  
  344. void r319add_into(T319* C,T0* a1){
  345. T0* _fn=NULL;
  346. T2 _i=0;
  347. C->_base_class=r59base_class((T59*)(X50start_position(r87item((T87*)((C)->_names/*8*/),1))));
  348. _i=1;
  349. while (!((_i)>(r87count((T87*)((C)->_names/*8*/))))) {
  350. _fn=r87item((T87*)((C)->_names/*8*/),_i);
  351. /*[IF*/
  352. if(r94has(((T94*)a1),X50to_key(_fn))){
  353. _fn=/*X95first_name*/((T0*)/*(IRF4.6first_name*/r87item(((T87*)(((T203*)(r94at(((T94*)a1),X50to_key(_fn))))->_names/*8*/)),1)/*)*/);
  354. r21add_position(X50start_position(_fn));
  355. r21add_position(X50start_position(r87item((T87*)((C)->_names/*8*/),_i)));
  356. r21error((T21*)(oBC12eh),((T0*)ms95_41905));
  357. /*[IRF3.6append*/{T0* b1=X50to_string(_fn);
  358. r7append((T7*)(oBC21explanation),b1);
  359. }/*]*/
  360. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  361. }
  362. else{
  363. r94put(((T94*)a1),(T0*)C,X50to_key(_fn));
  364. }
  365. /*FI]*/
  366. _i=(_i)+(1);
  367. }
  368. }
  369.  
  370.  
  371. T6 r319can_hide(T319* C,T0* a1,T0* a2){
  372. T6 R=0;
  373. /*[IF*/
  374. if(((C)->_result_type/*20*/)!=((void*)(X95result_type(a1)))){
  375. /*[IF*/
  376. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
  377. r21add_position(X95start_position(a1));
  378. r319error(r319start_position(C),((T0*)ms95_64647));
  379. }
  380. /*FI]*/
  381. }
  382. /*FI]*/
  383. /*[IF*/
  384. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X95arguments(a1)))){
  385. /*[IF*/
  386. {/*AT*/r21add_position(X95start_position(a1));
  387. r319error(r319start_position(C),((T0*)ms95_83182));
  388. }
  389. /*FI]*/
  390. }
  391. /*FI]*/
  392. /*[IF*/
  393. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  394. /*[IF*/
  395. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  396. /*[IF*/
  397. if(!(X52is_a_in((C)->_result_type/*20*/,X95result_type(a1),a2))){
  398. /*[IRF3.6append*/{T0* b1=((T0*)ms95_54285);
  399. r7append((T7*)(oBC21explanation),b1);
  400. }/*]*/
  401. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
  402. r7append((T7*)(oBC21explanation),b1);
  403. }/*]*/
  404. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  405. }
  406. /*FI]*/
  407. }
  408. /*FI]*/
  409. }
  410. /*FI]*/
  411. /*[IF*/
  412. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  413. /*[IF*/
  414. /*AF*//*AE*/
  415. /*FI]*/
  416. }
  417. /*FI]*/
  418. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  419. /*[IF*/
  420. if(R){
  421. r319merge_header_comments(C,a1);
  422. }
  423. /*FI]*/
  424. return R;
  425. }
  426. /*No:WRITABLE_ATTRIBUTE.ensure_assertion*/
  427.  
  428.  
  429. T0* r319try_to_undefine(T319* C,T0* a1,T0* a2){
  430. T0* R=NULL;
  431. T0* _fn2=NULL;
  432. r21add_position(X50start_position(a1));
  433. _fn2=r87feature_name((T87*)((C)->_names/*8*/),X50to_key(a1));
  434. /*[IF*/
  435. if((_fn2)!=((void*)(NULL))){
  436. X50undefine_in(_fn2,a2);
  437. }
  438. /*FI]*/
  439. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  440. /*]*/
  441. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  442. /*]*/
  443. /*]*/
  444. R=r319try_to_undefine_aux(C,a1,a2);
  445. /*[IF*/
  446. if((R)!=((void*)(NULL))){
  447. /*X289set_clients*//*[IRF3.3set_clients*/((((T292*)(((T292*)R))))->_clients)=((C)->_clients/*16*/);
  448. /*]*/
  449. r319merge_header_comments(C,R);
  450. }
  451. else{
  452. r63fatal_undefine(((T63*)a2),a1);
  453. }
  454. /*FI]*/
  455. return R;
  456. }
  457. /*No:WRITABLE_ATTRIBUTE.is_deferred*/
  458. /*No:WRITABLE_ATTRIBUTE.set_clients*/
  459. /*No:WRITABLE_ATTRIBUTE.nb_errors*/
  460.  
  461.  
  462. T0* r319to_run_feature(T319* C,T0* a1,T0* a2){
  463. T0* R=NULL;
  464. {T53*n=malloc(sizeof(*n));
  465. *n=M53;
  466. r53make(n,a1,a2,(T0*)C);
  467. R=(T0*)n;
  468. }
  469. return R;
  470. }
  471.  
  472.  
  473. void r319merge_header_comments(T319* C,T0* a1){
  474. /*[IF*/
  475. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  476. /*[IF*/
  477. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  478. C->_header_comment=/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/);
  479. }
  480.  else if((/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  481. X95set_header_comment(a1,(C)->_header_comment/*12*/);
  482. }
  483. /*FI]*/
  484. }
  485. /*FI]*/
  486. }
  487. /*No:WRITABLE_ATTRIBUTE.arguments*/
  488. /*No:WRITABLE_ATTRIBUTE.require_assertion*/
  489.  
  490.  
  491. T0* r319try_to_undefine_aux(T319* C,T0* a1,T0* a2){
  492. T0* R=NULL;
  493. r21add_position(r319start_position(C));
  494. r319error(X50start_position(a1),((T0*)ms205_99414));
  495. r63fatal_undefine(((T63*)a2),a1);
  496. return R;
  497. }
  498. /*No:WRITABLE_ATTRIBUTE.isa_redefinition*/
  499. /*No:WRITABLE_ATTRIBUTE.fz_dot*/
  500.  
  501.  
  502. void r319error(T0* a1,T0* a2){
  503. r21add_position(a1);
  504. r21error((T21*)(oBC12eh),a2);
  505. }
  506.  
  507.  
  508. void r319make(T319* C,T0* a1,T0* a2){
  509. /*[IRF3.3make_e_feature*/((((T319*)(C)))->_names)=(a1);
  510. /*]*/
  511. C->_result_type=a2;
  512. }
  513.  
  514.  
  515. void r319collect_for(T2 a1){
  516. T0* _er=NULL;
  517. /*[IF*/
  518. if((a1)==(1)){
  519. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  520. /*[IF*/
  521. if((_er)!=((void*)(NULL))){
  522. /*[IF*/
  523. if(!(r365fast_has((T365*)(oBC95require_collector),_er))){
  524. r365add_last((T365*)(oBC95require_collector),_er);
  525. }
  526. /*FI]*/
  527. }
  528. /*FI]*/
  529. }
  530. else{
  531. /*[IF*/
  532. /*AF*//*AE*/
  533. /*FI]*/
  534. }
  535. /*FI]*/
  536. }
  537. /*No:WRITABLE_ATTRIBUTE.set_header_comment*/
  538. /*No:WRITABLE_ATTRIBUTE.clients*/
  539.  
  540.  
  541. T6 r388empty_or_null_body(T388* C){
  542. T6 R=0;
  543. T0* _rb=NULL;
  544. _rb=(C)->_routine_body/*48*/;
  545. /*[IF*/
  546. if((((_rb)==((void*)(NULL)))||(/*(IRF4.7empty_or_null_body*/((((T220*)_rb))->_first_one/*8*/)==(NULL)/*)*/))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  547. C->_static_value_mem=0;
  548. C->_is_static_flag=1;
  549. R=1;
  550. }
  551. /*FI]*/
  552. return R;
  553. }
  554. /*No:RUN_FEATURE_4.use_current_state*/
  555. /*No:RUN_FEATURE_4.is_static_flag*/
  556. /*No:RUN_FEATURE_4.ucs_false*/
  557. /*No:RUN_FEATURE_4.C_empty_or_null_body*/
  558.  
  559.  
  560. T6 r388is_static(T388* C){
  561. T6 R=0;
  562. /*[IF*/
  563. if(r388isa_in_line(C)){
  564. R=(C)->_is_static_flag/*64*/;
  565. }
  566. /*FI]*/
  567. return R;
  568. }
  569.  
  570.  
  571. T0* r388start_position(T388* C){
  572. T0* R=NULL;
  573. R=r308start_position((T308*)((C)->_base_feature/*32*/));
  574. return R;
  575. }
  576.  
  577.  
  578. T0* r388body_one_result(T388* C){
  579. T0* R=NULL;
  580. T0* _a=NULL;
  581. T0* _rb=NULL;
  582. _rb=(C)->_routine_body/*48*/;
  583. /*[IF*/
  584. if(((_rb)!=((void*)(NULL)))&&((r220count(((T220*)_rb)))==(1))){
  585. _a=/*(IRF4.3first*/(((T220*)_rb))->_first_one/*8*//*)*/;
  586. if(NULL!=(_a))switch(((T0*)_a)->id) {
  587. case 287: 
  588. break;
  589. default:
  590. _a=NULL;
  591. };/*[IF*/
  592. if((_a)!=((void*)(NULL))){
  593. /*[IF*/
  594. if(X109is_result((((T287*)_a))->_left_side/*4*/)){
  595. R=(((T287*)_a))->_right_side/*8*/;
  596. }
  597. /*FI]*/
  598. }
  599. /*FI]*/
  600. }
  601. /*FI]*/
  602. return R;
  603. }
  604.  
  605.  
  606. T6 r388isa_in_line(T388* C){
  607. T6 R=0;
  608. /*[IF*/
  609. if(r76boost((T76*)(oBC12run_control))){
  610. {int z1=(C)->_in_line_status/*60*/;
  611.  
  612. if((-1==z1)){
  613. }
  614.  else 
  615. if((0==z1)){
  616. R=1;
  617. /*[IF*/
  618. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  619. C->_in_line_status=-(1);
  620. R=0;
  621. }
  622.  else if(r388empty_or_null_body(C)){
  623. C->_in_line_status=1;
  624. }
  625.  else if(r388value_reader(C)){
  626. C->_in_line_status=2;
  627. }
  628.  else if(r388attribute_reader(C)){
  629. C->_in_line_status=3;
  630. }
  631.  else if(r388result_is_current(C)){
  632. C->_in_line_status=4;
  633. }
  634.  else if(r388direct_call(C)){
  635. C->_in_line_status=5;
  636. }
  637.  else if(r388dca(C)){
  638. C->_in_line_status=6;
  639. }
  640.  else if(r388a_eq_neq(C)){
  641. C->_in_line_status=7;
  642. }
  643.  else if(r388dc_pco1(C)){
  644. C->_in_line_status=8;
  645. }
  646.  else if(r388dc_pco2(C)){
  647. C->_in_line_status=9;
  648. }
  649.  else if(r388direct_cse_call(C)){
  650. C->_in_line_status=10;
  651. }
  652. else{
  653. C->_in_line_status=-(1);
  654. R=0;
  655. }
  656. /*FI]*/
  657. }
  658.  else{R=1;
  659. }}
  660. }
  661. /*FI]*/
  662. return R;
  663. }
  664.  
  665.  
  666. void r388routine_mapping_jvm(T388* C){
  667. T2 _stack_level=0;
  668. T2 _idx=0;
  669. T0* _ct=NULL;
  670. T0* _rt=NULL;
  671. _ct=(C)->_current_type/*4*/;
  672. r24push_target_as_target((T24*)(oBC12jvm));
  673. _stack_level=-((1)+(r24push_arguments((T24*)(oBC12jvm))));
  674. _rt=(C)->_result_type/*40*/;
  675. /*[IF*/
  676. if((_rt)!=((void*)(NULL))){
  677. _stack_level=(_stack_level)+(X52jvm_stack_space(_rt));
  678. }
  679. /*FI]*/
  680. _idx=r29idx_methodref((T29*)(oBC12constant_pool),(T0*)C);
  681. r23jvm_invoke((T23*)(X52run_class(_ct)),_idx,_stack_level);
  682. }
  683.  
  684.  
  685. T6 r388use_current(T388* C){
  686. T6 R=0;
  687. {int z1=(C)->_use_current_state/*28*/;
  688.  
  689. if((14==z1)){
  690. R=1;
  691. }
  692.  else 
  693. if((13==z1)){
  694. }
  695.  else 
  696. if((15==z1)){
  697. C->_use_current_state=16;
  698. r388compute_use_current(C);
  699. R=r388use_current(C);
  700. }
  701.  else {R=1;
  702. }}
  703. return R;
  704. }
  705. /*No:RUN_FEATURE_4.mapping_jvm*/
  706.  
  707.  
  708. void r388routine_afd_check(T388* C){
  709. /*[IF*/
  710. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  711. r367afd_check((T367*)((C)->_require_assertion/*20*/));
  712. }
  713. /*FI]*/
  714. /*[IF*/
  715. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  716. r220afd_check((T220*)((C)->_routine_body/*48*/));
  717. }
  718. /*FI]*/
  719. /*[IF*/
  720. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  721. r220afd_check((T220*)((C)->_rescue_compound/*52*/));
  722. }
  723. /*FI]*/
  724. /*[IF*/
  725. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  726. r219afd_check((T219*)((C)->_ensure_assertion/*24*/));
  727. }
  728. /*FI]*/
  729. }
  730.  
  731.  
  732. T6 r388value_reader(T388* C){
  733. T6 R=0;
  734. T0* _c0=NULL;
  735. T0* _e=NULL;
  736. _e=r388body_one_result(C);
  737. /*[IF*/
  738. if(((_e)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  739. _c0=_e;
  740. if(NULL!=(_c0))switch(((T0*)_c0)->id) {
  741. case 148: case 142: case 153: case 147: case 146: 
  742. break;
  743. default:
  744. _c0=NULL;
  745. };/*[IF*/
  746. if((((_c0)!=((void*)(NULL)))&&(X109is_current(/*X144target*/((T0*)(((T148*)_c0))->_target/*4*/))))&&((X144run_feature(_c0))==((void*)(C)))){
  747. r21add_position(X109start_position(_e));
  748. /*[IRF3.6fatal_error*/{T0* b1=((T0*)ms388_38856);
  749. r21fatal_error((T21*)(oBC12eh),b1);
  750. }/*]*/
  751. }
  752.  else if(X109is_static(_e)){
  753. R=1;
  754. C->_static_value_mem=X109static_value(_e);
  755. C->_is_static_flag=1;
  756. }
  757. /*FI]*/
  758. }
  759. /*FI]*/
  760. return R;
  761. }
  762.  
  763.  
  764. T0* r388body_one_dc_pco(T388* C){
  765. T0* R=NULL;
  766. T0* _args=NULL;
  767. T0* _c=NULL;
  768. _c=r388body_one_result(C);
  769. if(NULL!=(_c))switch(((T0*)_c)->id) {
  770. case 135: case 122: case 116: case 148: case 124: case 126: case 133: case 125: case 123: case 156: case 140: case 142: case 136: case 127: case 129: case 138: case 198: case 155: case 153: case 137: case 128: case 130: case 131: case 147: case 134: case 139: case 146: 
  771. break;
  772. default:
  773. _c=NULL;
  774. };/*[IF*/
  775. if((((_c)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL))))&&(((C)->_arguments/*36*/)==((void*)(NULL)))){
  776. _args=X120arguments(_c);
  777. /*[IF*/
  778. if(((_args)==((void*)(NULL)))||(r152is_static(((T152*)_args)))){
  779. R=_c;
  780. }
  781. /*FI]*/
  782. }
  783. /*FI]*/
  784. return R;
  785. }
  786. /*No:RUN_FEATURE_4.C_result_is_current*/
  787.  
  788.  
  789. T6 r388direct_cse_call(T388* C){
  790. T6 R=0;
  791. T0* _rf8=NULL;
  792. T0* _c=NULL;
  793. /*[IF*/
  794. if((((C)->_arguments/*36*/)==((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  795. _c=r388body_one_result(C);
  796. if(NULL!=(_c))switch(((T0*)_c)->id) {
  797. case 135: case 122: case 116: case 148: case 124: case 126: case 133: case 125: case 123: case 156: case 140: case 142: case 136: case 127: case 129: case 138: case 198: case 155: case 153: case 137: case 128: case 130: case 131: case 147: case 134: case 139: case 146: 
  798. break;
  799. default:
  800. _c=NULL;
  801. };/*[IF*/
  802. if(((_c)!=((void*)(NULL)))&&((X120arguments(_c))==((void*)(NULL)))){
  803. _c=/*X120target*/((T0*)(((T135*)_c))->_target/*4*/);
  804. if(NULL!=(_c))switch(((T0*)_c)->id) {
  805. case 135: case 122: case 116: case 148: case 124: case 126: case 133: case 125: case 123: case 156: case 140: case 142: case 136: case 127: case 129: case 138: case 198: case 155: case 153: case 137: case 128: case 130: case 131: case 147: case 134: case 139: case 146: 
  806. break;
  807. default:
  808. _c=NULL;
  809. };/*[IF*/
  810. if(((_c)!=((void*)(NULL)))&&(X109is_current(/*X120target*/((T0*)(((T135*)_c))->_target/*4*/)))){
  811. /*[IF*/
  812. if((X120arguments(_c))==((void*)(NULL))){
  813. _rf8=X120run_feature(_c);
  814. if(NULL!=(_rf8))switch(((T0*)_rf8)->id) {
  815. case 386: 
  816. break;
  817. default:
  818. _rf8=NULL;
  819. };/*[IF*/
  820. if((_rf8)!=((void*)(NULL))){
  821. R=(X50to_string((((T386*)_rf8))->_name/*16*/))==((void*)(((T0*)ms14_17000)));
  822. }
  823. /*FI]*/
  824. }
  825. /*FI]*/
  826. }
  827. /*FI]*/
  828. }
  829. /*FI]*/
  830. }
  831. /*FI]*/
  832. return R;
  833. }
  834.  
  835.  
  836. void r388std_compute_use_current(T388* C){
  837. /*[IF*/
  838. if(((C)->_use_current_state/*28*/)==(16)){
  839. /*[IF*/
  840. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  841. /*[IF*/
  842. if(r367use_current((T367*)((C)->_require_assertion/*20*/))){
  843. C->_use_current_state=14;
  844. }
  845. /*FI]*/
  846. }
  847. /*FI]*/
  848. }
  849. /*FI]*/
  850. /*[IF*/
  851. if(((C)->_use_current_state/*28*/)==(16)){
  852. /*[IF*/
  853. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  854. /*[IF*/
  855. if(r220use_current((T220*)((C)->_routine_body/*48*/))){
  856. C->_use_current_state=14;
  857. }
  858. /*FI]*/
  859. }
  860. /*FI]*/
  861. }
  862. /*FI]*/
  863. /*[IF*/
  864. if(((C)->_use_current_state/*28*/)==(16)){
  865. /*[IF*/
  866. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  867. /*[IF*/
  868. if(r220use_current((T220*)((C)->_rescue_compound/*52*/))){
  869. C->_use_current_state=14;
  870. }
  871. /*FI]*/
  872. }
  873. /*FI]*/
  874. }
  875. /*FI]*/
  876. /*[IF*/
  877. if(((C)->_use_current_state/*28*/)==(16)){
  878. /*[IF*/
  879. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  880. /*[IF*/
  881. if(r219use_current((T219*)((C)->_ensure_assertion/*24*/))){
  882. C->_use_current_state=14;
  883. }
  884. /*FI]*/
  885. }
  886. /*FI]*/
  887. }
  888. /*FI]*/
  889. /*[IF*/
  890. if(((C)->_use_current_state/*28*/)==(16)){
  891. C->_use_current_state=13;
  892. }
  893. /*FI]*/
  894. }
  895.  
  896.  
  897. T0* r388run_class(T388* C){
  898. T0* R=NULL;
  899. R=X52run_class((C)->_current_type/*4*/);
  900. return R;
  901. }
  902. /*No:RUN_FEATURE_4.result_type*/
  903. /*No:RUN_FEATURE_4.base_feature*/
  904. /*No:RUN_FEATURE_4.C_dca*/
  905. /*No:RUN_FEATURE_4.ensure_assertion*/
  906. /*No:RUN_FEATURE_4.static_value_mem*/
  907.  
  908.  
  909. T6 r388is_exported_in(T388* C,T0* a1){
  910. T6 R=0;
  911. R=r103gives_permission_to((T103*)(r388clients(C)),a1);
  912. return R;
  913. }
  914. /*No:RUN_FEATURE_4.C_direct_cse_call*/
  915. /*No:RUN_FEATURE_4.fatal_error*/
  916. /*No:RUN_FEATURE_4.arguments*/
  917. /*No:RUN_FEATURE_4.in_line_status*/
  918. /*No:RUN_FEATURE_4.C_direct_call*/
  919.  
  920.  
  921. T6 r388direct_call(T388* C){
  922. T6 R=0;
  923. T0* _rf4=NULL;
  924. T0* _args=NULL;
  925. T0* _c=NULL;
  926. T0* _e=NULL;
  927. _e=r388body_one_result(C);
  928. /*[IF*/
  929. if((((_e)!=((void*)(NULL)))&&(((C)->_arguments/*36*/)==((void*)(NULL))))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  930. _c=_e;
  931. if(NULL!=(_c))switch(((T0*)_c)->id) {
  932. case 135: case 122: case 116: case 148: case 124: case 126: case 133: case 125: case 123: case 156: case 140: case 142: case 136: case 127: case 129: case 138: case 198: case 155: case 153: case 137: case 128: case 130: case 131: case 147: case 134: case 139: case 146: 
  933. break;
  934. default:
  935. _c=NULL;
  936. };/*[IF*/
  937. if((_c)!=((void*)(NULL))){
  938. /*[IF*/
  939. if(X109is_current(/*X120target*/((T0*)(((T135*)_c))->_target/*4*/))){
  940. _rf4=X120run_feature(_c);
  941. if(NULL!=(_rf4))switch(((T0*)_rf4)->id) {
  942. case 388: 
  943. break;
  944. default:
  945. _rf4=NULL;
  946. };/*[IF*/
  947. if((_rf4)!=((void*)(NULL))){
  948. _args=X120arguments(_c);
  949. /*[IF*/
  950. if((_args)==((void*)(NULL))){
  951. R=1;
  952. }
  953. else{
  954. R=r152is_static(((T152*)_args));
  955. }
  956. /*FI]*/
  957. }
  958. /*FI]*/
  959. }
  960. /*FI]*/
  961. }
  962. /*FI]*/
  963. }
  964. /*FI]*/
  965. return R;
  966. }
  967.  
  968.  
  969. T6 r388dca(T388* C){
  970. T6 R=0;
  971. T0* _args=NULL;
  972. T0* _rf=NULL;
  973. T0* _c=NULL;
  974. _c=r388body_one_result_dca(C);
  975. /*[IF*/
  976. if(((_c)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  977. _rf=X120run_feature(_c);
  978. /*[IF*/
  979. if((_rf)!=((void*)(NULL))){
  980. /*[IF*/
  981. if((_rf)!=((void*)(C))){
  982. /*[IF*/
  983. if(X52is_user_expanded(/*X27current_type*/((T0*)(((T26*)_rf))->_current_type/*4*/))){
  984. }
  985. else{
  986. _args=X120arguments(_c);
  987. /*[IF*/
  988. if((_args)==((void*)(NULL))){
  989. R=(r388arg_count(C))==(0);
  990. }
  991. else{
  992. R=r152isa_dca_inline(((T152*)_args),(T0*)C,_rf);
  993. }
  994. /*FI]*/
  995. }
  996. /*FI]*/
  997. }
  998. /*FI]*/
  999. }
  1000. /*FI]*/
  1001. }
  1002. /*FI]*/
  1003. return R;
  1004. }
  1005.  
  1006.  
  1007. void r388jvm_define_opening(T388* C){
  1008. T0* _t=NULL;
  1009. /*[IF*/
  1010. if(((C)->_result_type/*40*/)!=((void*)(NULL))){
  1011. _t=X52run_type((C)->_result_type/*40*/);
  1012. X52jvm_initialize_local(_t,r388jvm_result_offset(C));
  1013. }
  1014. /*FI]*/
  1015. /*[IF*/
  1016. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  1017. r182jvm_initialize((T182*)((C)->_local_vars/*44*/));
  1018. }
  1019. /*FI]*/
  1020. /*[IF*/
  1021. if(r76ensure_check((T76*)(oBC12run_control))){
  1022. /*[IF*/
  1023. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  1024. r219compile_to_jvm_old((T219*)((C)->_ensure_assertion/*24*/));
  1025. }
  1026. /*FI]*/
  1027. }
  1028. /*FI]*/
  1029. /*[IF*/
  1030. if(((C)->_require_assertion/*20*/)!=((void*)(NULL))){
  1031. r367compile_to_jvm((T367*)((C)->_require_assertion/*20*/));
  1032. }
  1033. /*FI]*/
  1034. }
  1035.  
  1036.  
  1037. void r388jvm_define_closing(T388* C){
  1038. /*[IF*/
  1039. if(r76ensure_check((T76*)(oBC12run_control))){
  1040. /*[IF*/
  1041. if(((C)->_ensure_assertion/*24*/)!=((void*)(NULL))){
  1042. r219compile_to_jvm((T219*)((C)->_ensure_assertion/*24*/),1);
  1043. /*[IRF3.4opcode_pop*/r28opcode((T28*)(oBC12code_attribute),87,-(1));
  1044. /*]*/
  1045. }
  1046. /*FI]*/
  1047. }
  1048. /*FI]*/
  1049. /*[IF*/
  1050. if(((C)->_result_type/*40*/)!=((void*)(NULL))){
  1051. X52jvm_push_local((C)->_result_type/*40*/,r388jvm_result_offset(C));
  1052. }
  1053. /*FI]*/
  1054. }
  1055. /*No:RUN_FEATURE_4.C_dc_pco1*/
  1056. /*No:RUN_FEATURE_4.clients_memory*/
  1057. /*No:RUN_FEATURE_4.current_type*/
  1058.  
  1059.  
  1060. void r388add_client(T388* C,T0* a1){
  1061. T2 _i=0;
  1062. /*[IF*/
  1063. if(((C)->_actuals_clients/*12*/)==((void*)(NULL))){
  1064. {T343*n=malloc(sizeof(*n));
  1065. *n=M343;
  1066. r343with_capacity(n,4);
  1067. C->_actuals_clients=(T0*)n;
  1068. }
  1069. r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
  1070. }
  1071. else{
  1072. _i=r343fast_index_of((T343*)((C)->_actuals_clients/*12*/),a1);
  1073. /*[IF*/
  1074. if((_i)>(((T343*)((C)->_actuals_clients/*12*/))->_upper/*8*/)){
  1075. r343add_last((T343*)((C)->_actuals_clients/*12*/),a1);
  1076. }
  1077. /*FI]*/
  1078. }
  1079. /*FI]*/
  1080. r23add_client((T23*)(r388run_class(C)),a1);
  1081. }
  1082. /*No:RUN_FEATURE_4.ucs_in_computation*/
  1083.  
  1084.  
  1085. void r388make(T388* C,T0* a1,T0* a2,T0* a3){
  1086. C->_current_type=a1;
  1087. C->_name=a2;
  1088. C->_base_feature=a3;
  1089. /*[IRF3.5add_rf*/r333put(((T333*)(((T23*)(r388run_class(C)))->_feature_dictionary/*24*/)),(T0*)C,X50to_key(a2));
  1090. /*]*/
  1091. r22incr_magic_count((T22*)(oBC12small_eiffel));
  1092. C->_use_current_state=15;
  1093. r22push((T22*)(oBC12small_eiffel),(T0*)C);
  1094. r388initialize(C);
  1095. r22pop((T22*)(oBC12small_eiffel));
  1096. }
  1097. /*No:RUN_FEATURE_4.C_value_reader*/
  1098. /*No:RUN_FEATURE_4.us_to_pointer*/
  1099. /*No:RUN_FEATURE_4.ucs_true*/
  1100. /*No:RUN_FEATURE_4.routine_body*/
  1101.  
  1102.  
  1103. void r388jvm_define(T388* C){
  1104. r388method_info_start(C);
  1105. r388jvm_define_opening(C);
  1106. /*[IF*/
  1107. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  1108. r220compile_to_jvm((T220*)((C)->_routine_body/*48*/));
  1109. }
  1110. /*FI]*/
  1111. r388jvm_define_closing(C);
  1112. X52jvm_return_code(X52run_type((C)->_result_type/*40*/));
  1113. r39finish((T39*)(oBC12method_info));
  1114. }
  1115. /*No:RUN_FEATURE_4.name*/
  1116.  
  1117.  
  1118. T6 r388attribute_reader(T388* C){
  1119. T6 R=0;
  1120. T0* _rf2=NULL;
  1121. T0* _c0=NULL;
  1122. T0* _e=NULL;
  1123. _e=r388body_one_result(C);
  1124. /*[IF*/
  1125. if(((_e)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  1126. _c0=_e;
  1127. if(NULL!=(_c0))switch(((T0*)_c0)->id) {
  1128. case 148: case 142: case 153: case 147: case 146: 
  1129. break;
  1130. default:
  1131. _c0=NULL;
  1132. };/*[IF*/
  1133. if((_c0)!=((void*)(NULL))){
  1134. /*[IF*/
  1135. if(X109is_current(/*X144target*/((T0*)(((T148*)_c0))->_target/*4*/))){
  1136. _rf2=X144run_feature(_c0);
  1137. if(NULL!=(_rf2))switch(((T0*)_rf2)->id) {
  1138. case 53: 
  1139. break;
  1140. default:
  1141. _rf2=NULL;
  1142. };R=(_rf2)!=((void*)(NULL));
  1143. }
  1144. /*FI]*/
  1145. }
  1146. /*FI]*/
  1147. }
  1148. /*FI]*/
  1149. return R;
  1150. }
  1151. /*No:RUN_FEATURE_4.afd_check*/
  1152.  
  1153.  
  1154. T0* r388clients(T388* C){
  1155. T0* R=NULL;
  1156. T0* _bfbc=NULL;
  1157. T0* _bc=NULL;
  1158. /*[IF*/
  1159. if(((C)->_clients_memory/*8*/)==((void*)(NULL))){
  1160. _bc=X52base_class((C)->_current_type/*4*/);
  1161. _bfbc=((T308*)((C)->_base_feature/*32*/))->_base_class/*4*/;
  1162. /*[IF*/
  1163. if((_bc)==((void*)(_bfbc))){
  1164. R=((T308*)((C)->_base_feature/*32*/))->_clients/*20*/;
  1165. }
  1166. else{
  1167. R=r63clients_for(((T63*)_bc),(C)->_name/*16*/);
  1168. }
  1169. /*FI]*/
  1170. C->_clients_memory=R;
  1171. }
  1172. else{
  1173. R=(C)->_clients_memory/*8*/;
  1174. }
  1175. /*FI]*/
  1176. return R;
  1177. }
  1178.  
  1179.  
  1180. void r388fall_down(T388* C){
  1181. T0* _rf=NULL;
  1182. T0* _sub_name=NULL;
  1183. T0* _sub_bc=NULL;
  1184. T0* _current_bc=NULL;
  1185. T0* _sub_rc=NULL;
  1186. T0* _current_rc=NULL;
  1187. T2 _i=0;
  1188. T0* _running=NULL;
  1189. _current_rc=X52run_class((C)->_current_type/*4*/);
  1190. _running=(((T23*)_current_rc))->_running/*12*/;
  1191. /*[IF*/
  1192. if((_running)!=((void*)(NULL))){
  1193. _current_bc=X52base_class((C)->_current_type/*4*/);
  1194. _i=(((T340*)_running))->_lower/*12*/;
  1195. while (!((_i)>((((T340*)_running))->_upper/*8*/))) {
  1196. _sub_rc=r340item(((T340*)_running),_i);
  1197. /*[IF*/
  1198. if((_sub_rc)!=((void*)(_current_rc))){
  1199. _sub_bc=X52base_class((((T23*)_sub_rc))->_current_type/*0*/);
  1200. _sub_name=r63new_name_of(((T63*)_sub_bc),_current_bc,(C)->_name/*16*/);
  1201. _rf=r23get_feature(((T23*)_sub_rc),_sub_name);
  1202. }
  1203. /*FI]*/
  1204. _i=(_i)+(1);
  1205. }
  1206. }
  1207. /*FI]*/
  1208. }
  1209. /*No:RUN_FEATURE_4.rescue_compound*/
  1210. /*No:RUN_FEATURE_4.actuals_clients*/
  1211.  
  1212.  
  1213. T6 r388result_is_current(T388* C){
  1214. T6 R=0;
  1215. T0* _e=NULL;
  1216. _e=r388body_one_result(C);
  1217. /*[IF*/
  1218. if(((_e)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  1219. R=X109is_current(_e);
  1220. }
  1221. /*FI]*/
  1222. return R;
  1223. }
  1224.  
  1225.  
  1226. T6 r388a_eq_neq(T388* C){
  1227. T6 R=0;
  1228. T0* _e=NULL;
  1229. T0* _rf=NULL;
  1230. T0* _c=NULL;
  1231. _c=r388body_one_result_dca(C);
  1232. /*[IF*/
  1233. if(((_c)!=((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL)))){
  1234. _rf=X120run_feature(_c);
  1235. /*[IF*/
  1236. if(((_rf)==((void*)(NULL)))&&((X120arg_count(_c))==(1))){
  1237. _e=r152expression((T152*)(X120arguments(_c)),1);
  1238. {int z1=X109isa_dca_inline_argument(_e);
  1239.  
  1240. if((0==z1)){
  1241. }
  1242.  else 
  1243. if((-1==z1)){
  1244. R=(r388arg_count(C))==(0);
  1245. }
  1246.  else{R=(r388arg_count(C))==(1);
  1247. }}
  1248. }
  1249. /*FI]*/
  1250. }
  1251. /*FI]*/
  1252. return R;
  1253. }
  1254. /*No:RUN_FEATURE_4.C_dc_pco2*/
  1255. /*No:RUN_FEATURE_4.ucs_not_computed*/
  1256. /*No:RUN_FEATURE_4.is_pre_computable*/
  1257. /*No:RUN_FEATURE_4.C_a_eq_neq*/
  1258.  
  1259.  
  1260. T2 r388jvm_local_variable_offset(T388* C,T0* a1){
  1261. T2 R=0;
  1262. R=X52jvm_stack_space((C)->_current_type/*4*/);
  1263. /*[IF*/
  1264. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1265. R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
  1266. }
  1267. /*FI]*/
  1268. R=(R)+(r182jvm_offset_of((T182*)((C)->_local_vars/*44*/),a1));
  1269. return R;
  1270. }
  1271.  
  1272.  
  1273. T2 r388arg_count(T388* C){
  1274. T2 R=0;
  1275. /*[IF*/
  1276. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1277. R=/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*36*/))->_flat_list/*8*/)))->_upper/*12*//*)*/;
  1278. }
  1279. /*FI]*/
  1280. return R;
  1281. }
  1282. /*No:RUN_FEATURE_4.fz_19*/
  1283.  
  1284.  
  1285. T6 r388dc_pco1(T388* C){
  1286. T6 R=0;
  1287. T0* _rf6=NULL;
  1288. T0* _c=NULL;
  1289. _c=r388body_one_dc_pco(C);
  1290. /*[IF*/
  1291. if(((_c)!=((void*)(NULL)))&&(X109is_current(/*X120target*/((T0*)(((T135*)_c))->_target/*4*/)))){
  1292. _rf6=X120run_feature(_c);
  1293. if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
  1294. case 348: 
  1295. break;
  1296. default:
  1297. _rf6=NULL;
  1298. };/*[IF*/
  1299. if((_rf6)!=((void*)(NULL))){
  1300. R=!(r348use_current(((T348*)_rf6)));
  1301. }
  1302. /*FI]*/
  1303. }
  1304. /*FI]*/
  1305. return R;
  1306. }
  1307.  
  1308.  
  1309. T2 r388jvm_argument_offset(T388* C,T0* a1){
  1310. T2 R=0;
  1311. R=X52jvm_stack_space((C)->_current_type/*4*/);
  1312. R=(R)+(r191jvm_offset_of((T191*)((C)->_arguments/*36*/),a1));
  1313. return R;
  1314. }
  1315.  
  1316.  
  1317. void r388initialize(T388* C){
  1318. C->_arguments=((T308*)((C)->_base_feature/*32*/))->_arguments/*24*/;
  1319. C->_result_type=((T308*)((C)->_base_feature/*32*/))->_result_type/*56*/;
  1320. /*[IF*/
  1321. if(X52is_like_argument((C)->_result_type/*40*/)){
  1322. /*[IF*/
  1323. if(!(r191is_runnable((T191*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  1324. {T191*n=malloc(sizeof(*n));
  1325. *n=M191;
  1326. r191with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  1327. C->_arguments=(T0*)n;
  1328. }
  1329. }
  1330. /*FI]*/
  1331. C->_result_type=X52to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
  1332. }
  1333. else{
  1334. C->_result_type=X52to_runnable((C)->_result_type/*40*/,(C)->_current_type/*4*/);
  1335. /*[IF*/
  1336. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1337. /*[IF*/
  1338. if(!(r191is_runnable((T191*)((C)->_arguments/*36*/),(C)->_current_type/*4*/))){
  1339. {T191*n=malloc(sizeof(*n));
  1340. *n=M191;
  1341. r191with(n,(C)->_arguments/*36*/,(C)->_current_type/*4*/);
  1342. C->_arguments=(T0*)n;
  1343. }
  1344. }
  1345. /*FI]*/
  1346. }
  1347. /*FI]*/
  1348. }
  1349. /*FI]*/
  1350. C->_local_vars=((T308*)((C)->_base_feature/*32*/))->_local_vars/*16*/;
  1351. /*[IF*/
  1352. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  1353. C->_local_vars=r182to_runnable((T182*)((C)->_local_vars/*44*/),(C)->_current_type/*4*/);
  1354. }
  1355. /*FI]*/
  1356. C->_routine_body=((T308*)((C)->_base_feature/*32*/))->_routine_body/*44*/;
  1357. /*[IF*/
  1358. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  1359. C->_routine_body=r220to_runnable((T220*)((C)->_routine_body/*48*/),(C)->_current_type/*4*/);
  1360. }
  1361. /*FI]*/
  1362. /*[IF*/
  1363. if(r76require_check((T76*)(oBC12run_control))){
  1364. C->_require_assertion=r308run_require((T0*)C);
  1365. }
  1366. /*FI]*/
  1367. /*[IF*/
  1368. if(r76ensure_check((T76*)(oBC12run_control))){
  1369. C->_ensure_assertion=r308run_ensure((T0*)C);
  1370. }
  1371. /*FI]*/
  1372. C->_rescue_compound=((T308*)((C)->_base_feature/*32*/))->_rescue_compound/*48*/;
  1373. /*[IF*/
  1374. if(((C)->_rescue_compound/*52*/)!=((void*)(NULL))){
  1375. /*[IRF3.3set_used*/((((T362*)((T362*)(oBC12exceptions_handler))))->_used)=(1);
  1376. /*]*/
  1377. C->_rescue_compound=r220to_runnable((T220*)((C)->_rescue_compound/*52*/),(C)->_current_type/*4*/);
  1378. }
  1379. /*FI]*/
  1380. }
  1381.  
  1382.  
  1383. T6 r388can_be_dropped(T388* C){
  1384. T6 R=0;
  1385. R=((((((C)->_arguments/*36*/)==((void*)(NULL)))&&(((C)->_local_vars/*44*/)==((void*)(NULL))))&&(((C)->_require_assertion/*20*/)==((void*)(NULL))))&&(((C)->_ensure_assertion/*24*/)==((void*)(NULL))))&&(((C)->_rescue_compound/*52*/)==((void*)(NULL)));
  1386. /*[IF*/
  1387. if(R){
  1388. /*[IF*/
  1389. if(((C)->_routine_body/*48*/)!=((void*)(NULL))){
  1390. R=0;
  1391. }
  1392. /*FI]*/
  1393. }
  1394. /*FI]*/
  1395. return R;
  1396. }
  1397. /*No:RUN_FEATURE_4.require_assertion*/
  1398. /*No:RUN_FEATURE_4.update_tmp_jvm_descriptor*/
  1399.  
  1400.  
  1401. T2 r388jvm_max_locals(T388* C){
  1402. T2 R=0;
  1403. R=X52jvm_stack_space((C)->_current_type/*4*/);
  1404. /*[IF*/
  1405. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1406. R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
  1407. }
  1408. /*FI]*/
  1409. /*[IF*/
  1410. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  1411. R=(R)+(r182jvm_stack_space((T182*)((C)->_local_vars/*44*/)));
  1412. }
  1413. /*FI]*/
  1414. /*[IF*/
  1415. if(((C)->_result_type/*40*/)!=((void*)(NULL))){
  1416. R=(R)+(X52jvm_stack_space((C)->_result_type/*40*/));
  1417. }
  1418. /*FI]*/
  1419. return R;
  1420. }
  1421.  
  1422.  
  1423. T6 r388dc_pco2(T388* C){
  1424. T6 R=0;
  1425. T0* _rf6=NULL;
  1426. T0* _c2=NULL;
  1427. T0* _c1=NULL;
  1428. _c1=r388body_one_dc_pco(C);
  1429. /*[IF*/
  1430. if((_c1)!=((void*)(NULL))){
  1431. _c2=/*X120target*/((T0*)(((T135*)_c1))->_target/*4*/);
  1432. if(NULL!=(_c2))switch(((T0*)_c2)->id) {
  1433. case 135: case 122: case 116: case 148: case 124: case 126: case 133: case 125: case 123: case 156: case 140: case 142: case 136: case 127: case 129: case 138: case 198: case 155: case 153: case 137: case 128: case 130: case 131: case 147: case 134: case 139: case 146: 
  1434. break;
  1435. default:
  1436. _c2=NULL;
  1437. };/*[IF*/
  1438. if((_c2)!=((void*)(NULL))){
  1439. _rf6=X120run_feature(_c2);
  1440. if(NULL!=(_rf6))switch(((T0*)_rf6)->id) {
  1441. case 348: 
  1442. break;
  1443. default:
  1444. _rf6=NULL;
  1445. };/*[IF*/
  1446. if((((_rf6)!=((void*)(NULL)))&&(!(r348use_current(((T348*)_rf6)))))&&(X109is_current(/*X120target*/((T0*)(((T135*)_c2))->_target/*4*/)))){
  1447. R=1;
  1448. }
  1449. /*FI]*/
  1450. }
  1451. /*FI]*/
  1452. }
  1453. /*FI]*/
  1454. return R;
  1455. }
  1456. /*No:RUN_FEATURE_4.C_attribute_reader*/
  1457.  
  1458.  
  1459. void r388compute_use_current(T388* C){
  1460. T0* _ct=NULL;
  1461. _ct=(C)->_current_type/*4*/;
  1462. /*[IF*/
  1463. if(X52is_reference(_ct)){
  1464. /*[IF*/
  1465. if(r76no_check((T76*)(oBC12run_control))){
  1466. C->_use_current_state=14;
  1467. }
  1468. else{
  1469. r388std_compute_use_current(C);
  1470. }
  1471. /*FI]*/
  1472. }
  1473. else{
  1474. r388std_compute_use_current(C);
  1475. }
  1476. /*FI]*/
  1477. }
  1478.  
  1479.  
  1480. T0* r388body_one_result_dca(T388* C){
  1481. T0* R=NULL;
  1482. T0* _bf=NULL;
  1483. T0* _r=NULL;
  1484. T0* _rf=NULL;
  1485. T0* _writable_attribute=NULL;
  1486. T0* _c0c=NULL;
  1487. T0* _c=NULL;
  1488. _c=r388body_one_result(C);
  1489. if(NULL!=(_c))switch(((T0*)_c)->id) {
  1490. case 135: case 122: case 116: case 148: case 124: case 126: case 133: case 125: case 123: case 156: case 140: case 142: case 136: case 127: case 129: case 138: case 198: case 155: case 153: case 137: case 128: case 130: case 131: case 147: case 134: case 139: case 146: 
  1491. break;
  1492. default:
  1493. _c=NULL;
  1494. };/*[IF*/
  1495. if((_c)!=((void*)(NULL))){
  1496. _c0c=/*X120target*/((T0*)(((T135*)_c))->_target/*4*/);
  1497. if(NULL!=(_c0c))switch(((T0*)_c0c)->id) {
  1498. case 153: 
  1499. break;
  1500. default:
  1501. _c0c=NULL;
  1502. };/*[IF*/
  1503. if((_c0c)!=((void*)(NULL))){
  1504. /*[IF*/
  1505. if(X109is_current((((T153*)_c0c))->_target/*4*/)){
  1506. _writable_attribute=(((T153*)_c0c))->_run_feature/*12*/;
  1507. if(NULL!=(_writable_attribute))switch(((T0*)_writable_attribute)->id) {
  1508. case 53: 
  1509. break;
  1510. default:
  1511. _writable_attribute=NULL;
  1512. };/*[IF*/
  1513. if((_writable_attribute)!=((void*)(NULL))){
  1514. _r=((T23*)(r53run_class(((T53*)_writable_attribute))))->_running/*12*/;
  1515. _rf=X120run_feature(_c);
  1516. /*[IF*/
  1517. if((_rf)==((void*)(NULL))){
  1518. R=_c;
  1519. }
  1520.  else if(((_r)!=((void*)(NULL)))&&((r340count(((T340*)_r)))==(1))){
  1521. _r=((T23*)(X27run_class(_rf)))->_running/*12*/;
  1522. /*[IF*/
  1523. if(((_r)!=((void*)(NULL)))&&((r340count(((T340*)_r)))==(1))){
  1524. _bf=(((T53*)_writable_attribute))->_base_feature/*24*/;
  1525. /*[IF*/
  1526. if(!((((T319*)_bf))->_isa_redefinition/*24*/)){
  1527. R=_c;
  1528. }
  1529. /*FI]*/
  1530. }
  1531. /*FI]*/
  1532. }
  1533. /*FI]*/
  1534. }
  1535. /*FI]*/
  1536. }
  1537. /*FI]*/
  1538. }
  1539. /*FI]*/
  1540. }
  1541. /*FI]*/
  1542. return R;
  1543. }
  1544.  
  1545.  
  1546. void r388method_info_start(T388* C){
  1547. T2 _flags=0;
  1548. _flags=X52jvm_method_flags((C)->_current_type/*4*/);
  1549. r39start((T39*)(oBC12method_info),_flags,X50to_key((C)->_name/*16*/),r388jvm_descriptor(C));
  1550. }
  1551. /*No:RUN_FEATURE_4.local_vars*/
  1552.  
  1553.  
  1554. T2 r388jvm_result_offset(T388* C){
  1555. T2 R=0;
  1556. R=X52jvm_stack_space((C)->_current_type/*4*/);
  1557. /*[IF*/
  1558. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1559. R=(R)+(r191jvm_stack_space((T191*)((C)->_arguments/*36*/)));
  1560. }
  1561. /*FI]*/
  1562. /*[IF*/
  1563. if(((C)->_local_vars/*44*/)!=((void*)(NULL))){
  1564. R=(R)+(r182jvm_stack_space((T182*)((C)->_local_vars/*44*/)));
  1565. }
  1566. /*FI]*/
  1567. return R;
  1568. }
  1569.  
  1570.  
  1571. void r388routine_update_tmp_jvm_descriptor(T388* C){
  1572. T0* _rt=NULL;
  1573. T0* _ct=NULL;
  1574. r7extend((T7*)(oBC27tmp_jvm_descriptor),'\50');
  1575. _ct=(C)->_current_type/*4*/;
  1576. X52jvm_target_descriptor_in(_ct,oBC27tmp_jvm_descriptor);
  1577. /*[IF*/
  1578. if(((C)->_arguments/*36*/)!=((void*)(NULL))){
  1579. r191jvm_descriptor_in((T191*)((C)->_arguments/*36*/),oBC27tmp_jvm_descriptor);
  1580. }
  1581. /*FI]*/
  1582. _rt=(C)->_result_type/*40*/;
  1583. /*[IF*/
  1584. if((_rt)==((void*)(NULL))){
  1585. r7append((T7*)(oBC27tmp_jvm_descriptor),((T0*)ms13_260));
  1586. }
  1587. else{
  1588. _rt=X52run_type(_rt);
  1589. r7extend((T7*)(oBC27tmp_jvm_descriptor),'\51');
  1590. X52jvm_descriptor_in(_rt,oBC27tmp_jvm_descriptor);
  1591. }
  1592. /*FI]*/
  1593. }
  1594. /*No:RUN_FEATURE_4.jvm_field_or_method*/
  1595.  
  1596.  
  1597. T0* r388jvm_descriptor(T388* C){
  1598. T0* R=NULL;
  1599. /*[IRF3.3clear*/((((T7*)((T7*)(oBC27tmp_jvm_descriptor))))->_count)=(0);
  1600. /*]*/
  1601. /*[IRF3.4update_tmp_jvm_descriptor*/r388routine_update_tmp_jvm_descriptor(C);
  1602. /*]*/
  1603. R=oBC27tmp_jvm_descriptor;
  1604. return R;
  1605. }
  1606. /*No:CST_ATT_REAL.base_class*/
  1607. /*No:CST_ATT_REAL.value_mem*/
  1608.  
  1609.  
  1610. T0* r215start_position(T215* C){
  1611. T0* R=NULL;
  1612. R=X50start_position(/*(IRF4.6first_name*/r87item(((T87*)((C)->_names/*8*/)),1)/*)*/);
  1613. return R;
  1614. }
  1615.  
  1616.  
  1617. T6 r215is_merge_with(T215* C,T0* a1,T0* a2){
  1618. T6 R=0;
  1619. R=1;
  1620. /*[IF*/
  1621. if(((C)->_result_type/*20*/)!=((void*)(X95result_type(a1)))){
  1622. /*[IF*/
  1623. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
  1624. R=0;
  1625. }
  1626. /*FI]*/
  1627. }
  1628. /*FI]*/
  1629. /*[IF*/
  1630. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X95arguments(a1)))){
  1631. /*[IF*/
  1632. {/*AT*/R=0;
  1633. }
  1634. /*FI]*/
  1635. }
  1636. /*FI]*/
  1637. /*[IF*/
  1638. if(R){
  1639. /*[IF*/
  1640. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1641. R=X52is_a_in((C)->_result_type/*20*/,X95result_type(a1),a2);
  1642. }
  1643. /*FI]*/
  1644. /*[IF*/
  1645. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  1646. R=r191is_a_in((T191*)(/*(IRF4.1arguments*/NULL/*)*/),X95arguments(a1),a2);
  1647. }
  1648. /*FI]*/
  1649. /*[IF*/
  1650. if(!(R)){
  1651. R=1;
  1652. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1653. /*]*/
  1654. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  1655. /*]*/
  1656. /*]*/
  1657. /*[IF*/
  1658. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1659. R=X52is_a_in(X95result_type(a1),(C)->_result_type/*20*/,a2);
  1660. }
  1661. /*FI]*/
  1662. /*[IF*/
  1663. if((R)&&((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(NULL)))){
  1664. R=r191is_a_in((T191*)(X95arguments(a1)),/*(IRF4.1arguments*/NULL/*)*/,a2);
  1665. }
  1666. /*FI]*/
  1667. }
  1668. /*FI]*/
  1669. }
  1670. /*FI]*/
  1671. /*[IF*/
  1672. if(R){
  1673. r215merge_header_comments(C,a1);
  1674. }
  1675. /*FI]*/
  1676. return R;
  1677. }
  1678. /*No:CST_ATT_REAL.first_name*/
  1679. /*No:CST_ATT_REAL.em1*/
  1680. /*No:CST_ATT_REAL.header_comment*/
  1681. /*No:CST_ATT_REAL.names*/
  1682. /*No:CST_ATT_REAL.result_type*/
  1683. /*No:CST_ATT_REAL.code_require*/
  1684. /*No:CST_ATT_REAL.make_e_feature*/
  1685.  
  1686.  
  1687. void r215add_into(T215* C,T0* a1){
  1688. T0* _fn=NULL;
  1689. T2 _i=0;
  1690. C->_base_class=r59base_class((T59*)(X50start_position(r87item((T87*)((C)->_names/*8*/),1))));
  1691. _i=1;
  1692. while (!((_i)>(r87count((T87*)((C)->_names/*8*/))))) {
  1693. _fn=r87item((T87*)((C)->_names/*8*/),_i);
  1694. /*[IF*/
  1695. if(r94has(((T94*)a1),X50to_key(_fn))){
  1696. _fn=/*X95first_name*/((T0*)/*(IRF4.6first_name*/r87item(((T87*)(((T203*)(r94at(((T94*)a1),X50to_key(_fn))))->_names/*8*/)),1)/*)*/);
  1697. r21add_position(X50start_position(_fn));
  1698. r21add_position(X50start_position(r87item((T87*)((C)->_names/*8*/),_i)));
  1699. r21error((T21*)(oBC12eh),((T0*)ms95_41905));
  1700. /*[IRF3.6append*/{T0* b1=X50to_string(_fn);
  1701. r7append((T7*)(oBC21explanation),b1);
  1702. }/*]*/
  1703. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  1704. }
  1705. else{
  1706. r94put(((T94*)a1),(T0*)C,X50to_key(_fn));
  1707. }
  1708. /*FI]*/
  1709. _i=(_i)+(1);
  1710. }
  1711. }
  1712.  
  1713.  
  1714. T6 r215can_hide(T215* C,T0* a1,T0* a2){
  1715. T6 R=0;
  1716. /*[IF*/
  1717. if(((C)->_result_type/*20*/)!=((void*)(X95result_type(a1)))){
  1718. /*[IF*/
  1719. if((((C)->_result_type/*20*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
  1720. r21add_position(X95start_position(a1));
  1721. r215error(r215start_position(C),((T0*)ms95_64647));
  1722. }
  1723. /*FI]*/
  1724. }
  1725. /*FI]*/
  1726. /*[IF*/
  1727. if((/*(IRF4.1arguments*/NULL/*)*/)!=((void*)(X95arguments(a1)))){
  1728. /*[IF*/
  1729. {/*AT*/r21add_position(X95start_position(a1));
  1730. r215error(r215start_position(C),((T0*)ms95_83182));
  1731. }
  1732. /*FI]*/
  1733. }
  1734. /*FI]*/
  1735. /*[IF*/
  1736. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1737. /*[IF*/
  1738. if(((C)->_result_type/*20*/)!=((void*)(NULL))){
  1739. /*[IF*/
  1740. if(!(X52is_a_in((C)->_result_type/*20*/,X95result_type(a1),a2))){
  1741. /*[IRF3.6append*/{T0* b1=((T0*)ms95_54285);
  1742. r7append((T7*)(oBC21explanation),b1);
  1743. }/*]*/
  1744. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
  1745. r7append((T7*)(oBC21explanation),b1);
  1746. }/*]*/
  1747. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  1748. }
  1749. /*FI]*/
  1750. }
  1751. /*FI]*/
  1752. }
  1753. /*FI]*/
  1754. /*[IF*/
  1755. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  1756. /*[IF*/
  1757. /*AF*//*AE*/
  1758. /*FI]*/
  1759. }
  1760. /*FI]*/
  1761. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  1762. /*[IF*/
  1763. if(R){
  1764. r215merge_header_comments(C,a1);
  1765. }
  1766. /*FI]*/
  1767. return R;
  1768. }
  1769. /*No:CST_ATT_REAL.ensure_assertion*/
  1770.  
  1771.  
  1772. T0* r215try_to_undefine(T215* C,T0* a1,T0* a2){
  1773. T0* R=NULL;
  1774. T0* _fn2=NULL;
  1775. r21add_position(X50start_position(a1));
  1776. _fn2=r87feature_name((T87*)((C)->_names/*8*/),X50to_key(a1));
  1777. /*[IF*/
  1778. if((_fn2)!=((void*)(NULL))){
  1779. X50undefine_in(_fn2,a2);
  1780. }
  1781. /*FI]*/
  1782. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  1783. /*]*/
  1784. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  1785. /*]*/
  1786. /*]*/
  1787. R=r215try_to_undefine_aux(C,a1,a2);
  1788. /*[IF*/
  1789. if((R)!=((void*)(NULL))){
  1790. /*X289set_clients*//*[IRF3.3set_clients*/((((T292*)(((T292*)R))))->_clients)=((C)->_clients/*16*/);
  1791. /*]*/
  1792. r215merge_header_comments(C,R);
  1793. }
  1794. else{
  1795. r63fatal_undefine(((T63*)a2),a1);
  1796. }
  1797. /*FI]*/
  1798. return R;
  1799. }
  1800. /*No:CST_ATT_REAL.is_deferred*/
  1801. /*No:CST_ATT_REAL.set_clients*/
  1802. /*No:CST_ATT_REAL.value*/
  1803. /*No:CST_ATT_REAL.nb_errors*/
  1804.  
  1805.  
  1806. T0* r215to_run_feature(T215* C,T0* a1,T0* a2){
  1807. T0* R=NULL;
  1808. T0* _rc=NULL;
  1809. _rc=X52run_class(a1);
  1810. R=r23at(((T23*)_rc),a2);
  1811. if(NULL!=(R))switch(((T0*)R)->id) {
  1812. case 372: 
  1813. break;
  1814. default:
  1815. R=NULL;
  1816. };/*[IF*/
  1817. if((R)==((void*)(NULL))){
  1818. {T372*n=malloc(sizeof(*n));
  1819. *n=M372;
  1820. r372make(n,a1,a2,(T0*)C);
  1821. R=(T0*)n;
  1822. }
  1823. }
  1824. /*FI]*/
  1825. return R;
  1826. }
  1827.  
  1828.  
  1829. void r215merge_header_comments(T215* C,T0* a1){
  1830. /*[IF*/
  1831. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  1832. /*[IF*/
  1833. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  1834. C->_header_comment=/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/);
  1835. }
  1836.  else if((/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  1837. X95set_header_comment(a1,(C)->_header_comment/*12*/);
  1838. }
  1839. /*FI]*/
  1840. }
  1841. /*FI]*/
  1842. }
  1843. /*No:CST_ATT_REAL.arguments*/
  1844. /*No:CST_ATT_REAL.require_assertion*/
  1845.  
  1846.  
  1847. T0* r215try_to_undefine_aux(T215* C,T0* a1,T0* a2){
  1848. T0* R=NULL;
  1849. r21add_position(r215start_position(C));
  1850. r215error(X50start_position(a1),((T0*)ms205_99414));
  1851. r63fatal_undefine(((T63*)a2),a1);
  1852. return R;
  1853. }
  1854. /*No:CST_ATT_REAL.fz_dot*/
  1855.  
  1856.  
  1857. void r215error(T0* a1,T0* a2){
  1858. r21add_position(a1);
  1859. r21error((T21*)(oBC12eh),a2);
  1860. }
  1861.  
  1862.  
  1863. void r215make(T215* C,T0* a1,T0* a2,T0* a3){
  1864. /*[IRF3.3make_e_feature*/((((T215*)(C)))->_names)=(a1);
  1865. /*]*/
  1866. C->_result_type=a2;
  1867. C->_value_mem=a3;
  1868. }
  1869.  
  1870.  
  1871. void r215collect_for(T2 a1){
  1872. T0* _er=NULL;
  1873. /*[IF*/
  1874. if((a1)==(1)){
  1875. _er=/*(IRF4.1require_assertion*/NULL/*)*/;
  1876. /*[IF*/
  1877. if((_er)!=((void*)(NULL))){
  1878. /*[IF*/
  1879. if(!(r365fast_has((T365*)(oBC95require_collector),_er))){
  1880. r365add_last((T365*)(oBC95require_collector),_er);
  1881. }
  1882. /*FI]*/
  1883. }
  1884. /*FI]*/
  1885. }
  1886. else{
  1887. /*[IF*/
  1888. /*AF*//*AE*/
  1889. /*FI]*/
  1890. }
  1891. /*FI]*/
  1892. }
  1893. /*No:CST_ATT_REAL.set_header_comment*/
  1894. /*No:CST_ATT_REAL.clients*/
  1895.  
  1896.  
  1897. T0* r295run_require(T0* a1){
  1898. T0* R=NULL;
  1899. T0* _ct=NULL;
  1900. T0* _ar=NULL;
  1901. T0* _hc=NULL;
  1902. T0* _er=NULL;
  1903. T0* _r=NULL;
  1904. T2 _i=0;
  1905. r365clear((T365*)(oBC95require_collector));
  1906. _ct=/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/);
  1907. r63collect_for((T63*)(X52base_class(_ct)),1,/*X27name*/((T0*)(((T26*)a1))->_name/*16*/));
  1908. /*[IF*/
  1909. if(!(r365empty((T365*)(oBC95require_collector)))){
  1910. _i=1;
  1911. while (!((_i)>(((T365*)(oBC95require_collector))->_upper/*8*/))) {
  1912. _er=r365item((T365*)(oBC95require_collector),_i);
  1913. _hc=(((T291*)_er))->_header_comment/*4*/;
  1914. /*[IF*/
  1915. if(!(/*(IRF4.7empty*/((((T291*)_er))->_list/*8*/)==(NULL)/*)*/)){
  1916. _r=r295runnable((((T291*)_er))->_list/*8*/,_ct,a1);
  1917. /*[IF*/
  1918. if((_r)!=((void*)(NULL))){
  1919. {T291*n=malloc(sizeof(*n));
  1920. *n=M291;
  1921. r291make_runnable(n,_r,_ct,a1);
  1922. _er=(T0*)n;
  1923. }
  1924. /*[IRF3.3set_header_comment*/((((T291*)(((T291*)_er))))->_header_comment)=(_hc);
  1925. /*]*/
  1926. /*[IF*/
  1927. if((_ar)==((void*)(NULL))){
  1928. _ar=se_ma365(1,
  1929. _er);
  1930. }
  1931. else{
  1932. r365add_last(((T365*)_ar),_er);
  1933. }
  1934. /*FI]*/
  1935. }
  1936. /*FI]*/
  1937. }
  1938. /*FI]*/
  1939. _i=(_i)+(1);
  1940. }
  1941. /*[IF*/
  1942. if((_ar)!=((void*)(NULL))){
  1943. {T367*n=malloc(sizeof(*n));
  1944. *n=M367;
  1945. /*[IRF3.3make*/((((T367*)(n)))->_list)=(_ar);
  1946. /*]*/
  1947. R=(T0*)n;
  1948. }
  1949. }
  1950. /*FI]*/
  1951. }
  1952. /*FI]*/
  1953. return R;
  1954. }
  1955. /*No:EXTERNAL_PROCEDURE.base_class*/
  1956.  
  1957.  
  1958. void r295set_rescue_compound(T295* C,T0* a1){
  1959. /*[IF*/
  1960. if((a1)!=((void*)(NULL))){
  1961. r21add_position(r220start_position(((T220*)a1)));
  1962. }
  1963. else{
  1964. r21add_position(r295start_position(C));
  1965. }
  1966. /*FI]*/
  1967. /*[IRF3.6append*/{T0* b1=((T0*)ms294_126759);
  1968. r7append((T7*)(oBC21explanation),b1);
  1969. }/*]*/
  1970. r21print_as_fatal_error((T21*)(oBC12eh));
  1971. }
  1972.  
  1973.  
  1974. T0* r295start_position(T295* C){
  1975. T0* R=NULL;
  1976. R=X50start_position(/*(IRF4.6first_name*/r87item(((T87*)((C)->_names/*8*/)),1)/*)*/);
  1977. return R;
  1978. }
  1979.  
  1980.  
  1981. T6 r295is_merge_with(T295* C,T0* a1,T0* a2){
  1982. T6 R=0;
  1983. R=1;
  1984. /*[IF*/
  1985. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X95result_type(a1)))){
  1986. /*[IF*/
  1987. {/*AT*/R=0;
  1988. }
  1989. /*FI]*/
  1990. }
  1991. /*FI]*/
  1992. /*[IF*/
  1993. if(((C)->_arguments/*20*/)!=((void*)(X95arguments(a1)))){
  1994. /*[IF*/
  1995. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X95arguments(a1))==((void*)(NULL)))){
  1996. R=0;
  1997. }
  1998.  else if((/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T195*)(((T191*)(X95arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  1999. R=0;
  2000. }
  2001. /*FI]*/
  2002. }
  2003. /*FI]*/
  2004. /*[IF*/
  2005. if(R){
  2006. /*[IF*/
  2007. /*AF*//*AE*/
  2008. /*FI]*/
  2009. /*[IF*/
  2010. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  2011. R=r191is_a_in((T191*)((C)->_arguments/*20*/),X95arguments(a1),a2);
  2012. }
  2013. /*FI]*/
  2014. /*[IF*/
  2015. if(!(R)){
  2016. R=1;
  2017. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2018. /*]*/
  2019. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  2020. /*]*/
  2021. /*]*/
  2022. /*[IF*/
  2023. /*AF*//*AE*/
  2024. /*FI]*/
  2025. /*[IF*/
  2026. if((R)&&(((C)->_arguments/*20*/)!=((void*)(NULL)))){
  2027. R=r191is_a_in((T191*)(X95arguments(a1)),(C)->_arguments/*20*/,a2);
  2028. }
  2029. /*FI]*/
  2030. }
  2031. /*FI]*/
  2032. }
  2033. /*FI]*/
  2034. /*[IF*/
  2035. if(R){
  2036. r295merge_header_comments(C,a1);
  2037. }
  2038. /*FI]*/
  2039. return R;
  2040. }
  2041.  
  2042.  
  2043. T0* r295runnable(T0* a1,T0* a2,T0* a3){
  2044. T0* R=NULL;
  2045. T0* _a=NULL;
  2046. T2 _i=0;
  2047. /*[IF*/
  2048. if(!(r108empty(((T108*)a1)))){
  2049. R=r108twin(((T108*)a1));
  2050. _i=(((T108*)R))->_upper/*8*/;
  2051. while (!((_i)==(0))) {
  2052. r22push((T22*)(oBC12small_eiffel),a3);
  2053. _a=r105to_runnable((T105*)(r108item(((T108*)R),_i)),a2);
  2054. /*[IF*/
  2055. if((_a)==((void*)(NULL))){
  2056. r295error(r105start_position((T105*)(r108item(((T108*)R),_i))),((T0*)ms13_14266));
  2057. }
  2058. else{
  2059. /*[IRF3.6put*/{T108* C1=((T108*)R);
  2060. T0* b1=_a;
  2061. T2 b2=_i;
  2062. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  2063. }/*]*/
  2064. }
  2065. /*FI]*/
  2066. r22pop((T22*)(oBC12small_eiffel));
  2067. _i=(_i)-(1);
  2068. }
  2069. }
  2070. /*FI]*/
  2071. return R;
  2072. }
  2073. /*No:EXTERNAL_PROCEDURE.first_name*/
  2074. /*No:EXTERNAL_PROCEDURE.em1*/
  2075.  
  2076.  
  2077. T6 r295use_current(T295* C){
  2078. T6 R=0;
  2079. R=X293use_current((C)->_native/*40*/,(T0*)C);
  2080. return R;
  2081. }
  2082. /*No:EXTERNAL_PROCEDURE.header_comment*/
  2083. /*No:EXTERNAL_PROCEDURE.names*/
  2084. /*No:EXTERNAL_PROCEDURE.fz_03*/
  2085.  
  2086.  
  2087. void r295make_external_routine(T295* C,T0* a1,T0* a2){
  2088. C->_native=a1;
  2089. C->_alias_string=a2;
  2090. }
  2091. /*No:EXTERNAL_PROCEDURE.result_type*/
  2092. /*No:EXTERNAL_PROCEDURE.code_require*/
  2093. /*No:EXTERNAL_PROCEDURE.make_e_feature*/
  2094.  
  2095.  
  2096. void r295add_into(T295* C,T0* a1){
  2097. T0* _fn=NULL;
  2098. T2 _i=0;
  2099. C->_base_class=r59base_class((T59*)(X50start_position(r87item((T87*)((C)->_names/*8*/),1))));
  2100. _i=1;
  2101. while (!((_i)>(r87count((T87*)((C)->_names/*8*/))))) {
  2102. _fn=r87item((T87*)((C)->_names/*8*/),_i);
  2103. /*[IF*/
  2104. if(r94has(((T94*)a1),X50to_key(_fn))){
  2105. _fn=/*X95first_name*/((T0*)/*(IRF4.6first_name*/r87item(((T87*)(((T203*)(r94at(((T94*)a1),X50to_key(_fn))))->_names/*8*/)),1)/*)*/);
  2106. r21add_position(X50start_position(_fn));
  2107. r21add_position(X50start_position(r87item((T87*)((C)->_names/*8*/),_i)));
  2108. r21error((T21*)(oBC12eh),((T0*)ms95_41905));
  2109. /*[IRF3.6append*/{T0* b1=X50to_string(_fn);
  2110. r7append((T7*)(oBC21explanation),b1);
  2111. }/*]*/
  2112. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  2113. }
  2114. else{
  2115. r94put(((T94*)a1),(T0*)C,X50to_key(_fn));
  2116. }
  2117. /*FI]*/
  2118. _i=(_i)+(1);
  2119. }
  2120. }
  2121.  
  2122.  
  2123. T6 r295can_hide(T295* C,T0* a1,T0* a2){
  2124. T6 R=0;
  2125. /*[IF*/
  2126. if((/*(IRF4.1result_type*/NULL/*)*/)!=((void*)(X95result_type(a1)))){
  2127. /*[IF*/
  2128. {/*AT*/r21add_position(X95start_position(a1));
  2129. r295error(r295start_position(C),((T0*)ms95_64647));
  2130. }
  2131. /*FI]*/
  2132. }
  2133. /*FI]*/
  2134. /*[IF*/
  2135. if(((C)->_arguments/*20*/)!=((void*)(X95arguments(a1)))){
  2136. /*[IF*/
  2137. if((((C)->_arguments/*20*/)==((void*)(NULL)))||((X95arguments(a1))==((void*)(NULL)))){
  2138. r21add_position(X95start_position(a1));
  2139. r295error(r295start_position(C),((T0*)ms95_83182));
  2140. }
  2141.  else if((/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*20*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T195*)(((T191*)(X95arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  2142. r21add_position(X95start_position(a1));
  2143. r295error(r295start_position(C),((T0*)ms95_67155));
  2144. }
  2145. /*FI]*/
  2146. }
  2147. /*FI]*/
  2148. /*[IF*/
  2149. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2150. /*[IF*/
  2151. /*AF*//*AE*/
  2152. /*FI]*/
  2153. }
  2154. /*FI]*/
  2155. /*[IF*/
  2156. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2157. /*[IF*/
  2158. if(((C)->_arguments/*20*/)!=((void*)(NULL))){
  2159. /*[IF*/
  2160. if(!(r191is_a_in((T191*)((C)->_arguments/*20*/),X95arguments(a1),a2))){
  2161. r21add_position(X95start_position(a1));
  2162. r21add_position(r295start_position(C));
  2163. /*[IRF3.6append*/{T0* b1=((T0*)ms95_54285);
  2164. r7append((T7*)(oBC21explanation),b1);
  2165. }/*]*/
  2166. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
  2167. r7append((T7*)(oBC21explanation),b1);
  2168. }/*]*/
  2169. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  2170. }
  2171. /*FI]*/
  2172. }
  2173. /*FI]*/
  2174. }
  2175. /*FI]*/
  2176. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  2177. /*[IF*/
  2178. if(R){
  2179. r295merge_header_comments(C,a1);
  2180. }
  2181. /*FI]*/
  2182. return R;
  2183. }
  2184. /*No:EXTERNAL_PROCEDURE.ensure_assertion*/
  2185.  
  2186.  
  2187. T0* r295run_ensure(T0* a1){
  2188. T0* R=NULL;
  2189. T0* _ct=NULL;
  2190. T0* _r=NULL;
  2191. r108clear((T108*)(oBC95assertion_collector));
  2192. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2193. ((((T364*)((T364*)(oBC95header_comment_memory))))->_item)=(_default_item);
  2194. }/*]*/
  2195. _ct=/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/);
  2196. r63collect_for((T63*)(X52base_class(_ct)),2,/*X27name*/((T0*)(((T26*)a1))->_name/*16*/));
  2197. _r=r295runnable(oBC95assertion_collector,_ct,a1);
  2198. /*[IF*/
  2199. if((_r)!=((void*)(NULL))){
  2200. {T219*n=malloc(sizeof(*n));
  2201. *n=M219;
  2202. r219make_runnable(n,_r,_ct,a1);
  2203. R=(T0*)n;
  2204. }
  2205. /*[IRF3.3set_header_comment*/((((T219*)(((T219*)R))))->_header_comment)=(((T364*)(oBC95header_comment_memory))->_item/*0*/);
  2206. /*]*/
  2207. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2208. ((((T364*)((T364*)(oBC95header_comment_memory))))->_item)=(_default_item);
  2209. }/*]*/
  2210. }
  2211. /*FI]*/
  2212. return R;
  2213. }
  2214.  
  2215.  
  2216. void r295check_obsolete(T295* C){
  2217. /*[IF*/
  2218. if(!(((T22*)(oBC12small_eiffel))->_short_flag/*8*/)){
  2219. /*[IF*/
  2220. if(((C)->_obsolete_mark/*24*/)!=((void*)(NULL))){
  2221. /*[IRF3.6append*/{T0* b1=((T0*)ms218_39396);
  2222. r7append((T7*)(oBC21explanation),b1);
  2223. }/*]*/
  2224. /*[IRF3.6append*/{T0* b1=((T174*)((C)->_obsolete_mark/*24*/))->_to_string/*8*/;
  2225. r7append((T7*)(oBC21explanation),b1);
  2226. }/*]*/
  2227. r295warning(r295start_position(C),((T0*)ms13_166));
  2228. }
  2229. /*FI]*/
  2230. }
  2231. /*FI]*/
  2232. }
  2233.  
  2234.  
  2235. T0* r295try_to_undefine(T295* C,T0* a1,T0* a2){
  2236. T0* R=NULL;
  2237. T0* _fn2=NULL;
  2238. r21add_position(X50start_position(a1));
  2239. _fn2=r87feature_name((T87*)((C)->_names/*8*/),X50to_key(a1));
  2240. /*[IF*/
  2241. if((_fn2)!=((void*)(NULL))){
  2242. X50undefine_in(_fn2,a2);
  2243. }
  2244. /*FI]*/
  2245. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2246. /*]*/
  2247. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  2248. /*]*/
  2249. /*]*/
  2250. R=r295try_to_undefine_aux(C,a1,a2);
  2251. /*[IF*/
  2252. if((R)!=((void*)(NULL))){
  2253. /*X289set_clients*//*[IRF3.3set_clients*/((((T292*)(((T292*)R))))->_clients)=((C)->_clients/*16*/);
  2254. /*]*/
  2255. r295merge_header_comments(C,R);
  2256. }
  2257. else{
  2258. r63fatal_undefine(((T63*)a2),a1);
  2259. }
  2260. /*FI]*/
  2261. return R;
  2262. }
  2263. /*No:EXTERNAL_PROCEDURE.is_deferred*/
  2264. /*No:EXTERNAL_PROCEDURE.set_clients*/
  2265. /*No:EXTERNAL_PROCEDURE.native*/
  2266. /*No:EXTERNAL_PROCEDURE.code_ensure*/
  2267. /*No:EXTERNAL_PROCEDURE.nb_errors*/
  2268.  
  2269.  
  2270. void r295make_routine(T295* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  2271. /*[IRF3.3make_e_feature*/((((T295*)(C)))->_names)=(a1);
  2272. /*]*/
  2273. C->_header_comment=a4;
  2274. C->_arguments=a2;
  2275. C->_obsolete_mark=a3;
  2276. C->_require_assertion=a5;
  2277. }
  2278.  
  2279.  
  2280. T0* r295to_run_feature(T295* C,T0* a1,T0* a2){
  2281. T0* R=NULL;
  2282. r295check_obsolete(C);
  2283. {T387*n=malloc(sizeof(*n));
  2284. *n=M387;
  2285. r387make(n,a1,a2,(T0*)C);
  2286. R=(T0*)n;
  2287. }
  2288. return R;
  2289. }
  2290.  
  2291.  
  2292. void r295merge_header_comments(T295* C,T0* a1){
  2293. /*[IF*/
  2294. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  2295. /*[IF*/
  2296. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  2297. C->_header_comment=/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/);
  2298. }
  2299.  else if((/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  2300. X95set_header_comment(a1,(C)->_header_comment/*12*/);
  2301. }
  2302. /*FI]*/
  2303. }
  2304. /*FI]*/
  2305. }
  2306. /*No:EXTERNAL_PROCEDURE.arguments*/
  2307. /*No:EXTERNAL_PROCEDURE.require_assertion*/
  2308.  
  2309.  
  2310. void r295warning(T0* a1,T0* a2){
  2311. r21add_position(a1);
  2312. r21warning((T21*)(oBC12eh),a2);
  2313. }
  2314.  
  2315.  
  2316. T0* r295try_to_undefine_aux(T295* C,T0* a1,T0* a2){
  2317. T0* R=NULL;
  2318. {T290*n=malloc(sizeof(*n));
  2319. *n=M290;
  2320. r290from_effective(n,a1,(C)->_arguments/*20*/,(C)->_require_assertion/*28*/,(C)->_ensure_assertion/*32*/,a2);
  2321. R=(T0*)n;
  2322. }
  2323. return R;
  2324. }
  2325. /*No:EXTERNAL_PROCEDURE.set_ensure_assertion*/
  2326. /*No:EXTERNAL_PROCEDURE.fz_bad_assertion*/
  2327. /*No:EXTERNAL_PROCEDURE.fz_dot*/
  2328. /*No:EXTERNAL_PROCEDURE.alias_string*/
  2329.  
  2330.  
  2331. void r295error(T0* a1,T0* a2){
  2332. r21add_position(a1);
  2333. r21error((T21*)(oBC12eh),a2);
  2334. }
  2335.  
  2336.  
  2337. void r295make(T295* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5,T0* a6,T0* a7){
  2338. r295make_routine(C,a1,a2,a3,a4,a5);
  2339. r295make_external_routine(C,a6,a7);
  2340. }
  2341. /*No:EXTERNAL_PROCEDURE.end_comment*/
  2342.  
  2343.  
  2344. void r295collect_for(T295* C,T2 a1){
  2345. T0* _er=NULL;
  2346. /*[IF*/
  2347. if((a1)==(1)){
  2348. _er=(C)->_require_assertion/*28*/;
  2349. /*[IF*/
  2350. if((_er)!=((void*)(NULL))){
  2351. /*[IF*/
  2352. if(!(r365fast_has((T365*)(oBC95require_collector),_er))){
  2353. r365add_last((T365*)(oBC95require_collector),_er);
  2354. }
  2355. /*FI]*/
  2356. }
  2357. /*FI]*/
  2358. }
  2359. else{
  2360. /*[IF*/
  2361. if(((C)->_ensure_assertion/*32*/)!=((void*)(NULL))){
  2362. /*[IRF3.3set_item*/((((T364*)((T364*)(oBC95header_comment_memory))))->_item)=(((T219*)((C)->_ensure_assertion/*32*/))->_header_comment/*4*/);
  2363. /*]*/
  2364. r219add_into((T219*)((C)->_ensure_assertion/*32*/),oBC95assertion_collector);
  2365. }
  2366. /*FI]*/
  2367. }
  2368. /*FI]*/
  2369. }
  2370.  
  2371.  
  2372. void r295set_header_comment(T295* C,T0* a1){
  2373. /*[IF*/
  2374. if(((a1)!=((void*)(NULL)))&&((/*(IRF4.6count*/r73count(((T73*)((((T85*)a1))->_list/*4*/)))/*)*/)>(1))){
  2375. C->_end_comment=a1;
  2376. }
  2377. /*FI]*/
  2378. }
  2379. /*No:EXTERNAL_PROCEDURE.clients*/
  2380. /*No:EXTERNAL_PROCEDURE.obsolete_mark*/
  2381. /*No:IFTHEN.static_false*/
  2382. /*No:IFTHEN.nb_errors*/
  2383. /*No:IFTHEN.non_static*/
  2384. /*No:IFTHEN.expression*/
  2385. /*No:IFTHEN.fz_is_not_boolean*/
  2386. /*No:IFTHEN.then_compound*/
  2387.  
  2388.  
  2389. T6 r230use_current(T230* C){
  2390. T6 R=0;
  2391. R=X109use_current((C)->_expression/*0*/);
  2392. /*[IF*/
  2393. if((!(R))&&(((C)->_then_compound/*4*/)!=((void*)(NULL)))){
  2394. R=r220use_current((T220*)((C)->_then_compound/*4*/));
  2395. }
  2396. /*FI]*/
  2397. return R;
  2398. }
  2399. /*No:IFTHEN.point2*/
  2400.  
  2401.  
  2402. T0* r230to_runnable(T230* C,T0* a1){
  2403. T0* R=NULL;
  2404. T0* _t=NULL;
  2405. T0* _tc=NULL;
  2406. T0* _e=NULL;
  2407. /*[IF*/
  2408. if(((C)->_current_type/*8*/)==((void*)(NULL))){
  2409. C->_current_type=a1;
  2410. _e=X109to_runnable((C)->_expression/*0*/,a1);
  2411. /*[IF*/
  2412. if((_e)==((void*)(NULL))){
  2413. r230error(X109start_position((C)->_expression/*0*/),((T0*)ms230_32982));
  2414. }
  2415. else{
  2416. C->_expression=_e;
  2417. _t=X109result_type((C)->_expression/*0*/);
  2418. /*[IF*/
  2419. if(!(X52is_boolean(_t))){
  2420. /*[IRF3.6append*/{T0* b1=((T0*)ms230_75563);
  2421. r7append((T7*)(oBC21explanation),b1);
  2422. }/*]*/
  2423. r21add_type(X109result_type((C)->_expression/*0*/),((T0*)ms13_18320));
  2424. r21add_position(X109start_position((C)->_expression/*0*/));
  2425. r21print_as_error((T21*)(oBC12eh));
  2426. }
  2427. /*FI]*/
  2428. }
  2429. /*FI]*/
  2430. /*[IF*/
  2431. if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
  2432. _tc=r220to_runnable((T220*)((C)->_then_compound/*4*/),a1);
  2433. /*[IF*/
  2434. if((_tc)!=((void*)(NULL))){
  2435. C->_then_compound=_tc;
  2436. }
  2437. /*FI]*/
  2438. }
  2439. /*FI]*/
  2440. /*[IF*/
  2441. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2442. R=(T0*)C;
  2443. }
  2444. /*FI]*/
  2445. }
  2446. else{
  2447. {T230*n=malloc(sizeof(*n));
  2448. *n=M230;
  2449. r230make(n,(C)->_expression/*0*/,(C)->_then_compound/*4*/);
  2450. R=(T0*)n;
  2451. }
  2452. R=r230to_runnable(((T230*)R),a1);
  2453. }
  2454. /*FI]*/
  2455. return R;
  2456. }
  2457. /*No:IFTHEN.current_type*/
  2458.  
  2459.  
  2460. T2 r230compile_to_jvm_resolve_branch(T230* C){
  2461. T2 R=0;
  2462. /*[IF*/
  2463. if(X109is_static((C)->_expression/*0*/)){
  2464. /*[IF*/
  2465. if((X109static_value((C)->_expression/*0*/))==(1)){
  2466. R=17;
  2467. }
  2468. else{
  2469. R=18;
  2470. }
  2471. /*FI]*/
  2472. }
  2473. else{
  2474. R=19;
  2475. /*[IF*/
  2476. if(((C)->_point2/*12*/)>(0)){
  2477. r28resolve_u2_branch((C)->_point2/*12*/);
  2478. }
  2479. /*FI]*/
  2480. }
  2481. /*FI]*/
  2482. return R;
  2483. }
  2484.  
  2485.  
  2486. void r230error(T0* a1,T0* a2){
  2487. r21add_position(a1);
  2488. r21error((T21*)(oBC12eh),a2);
  2489. }
  2490.  
  2491.  
  2492. void r230make(T230* C,T0* a1,T0* a2){
  2493. C->_expression=a1;
  2494. C->_then_compound=a2;
  2495. }
  2496.  
  2497.  
  2498. T2 r230compile_to_jvm(T230* C){
  2499. T2 R=0;
  2500. T2 _point1=0;
  2501. /*[IF*/
  2502. if(X109is_static((C)->_expression/*0*/)){
  2503. r24incr_static_expression_count((T24*)(oBC12jvm));
  2504. /*[IF*/
  2505. if((X109static_value((C)->_expression/*0*/))==(1)){
  2506. /*[IF*/
  2507. if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
  2508. r220compile_to_jvm((T220*)((C)->_then_compound/*4*/));
  2509. }
  2510. /*FI]*/
  2511. R=17;
  2512. }
  2513. else{
  2514. R=18;
  2515. }
  2516. /*FI]*/
  2517. }
  2518. else{
  2519. R=19;
  2520. _point1=X109jvm_branch_if_false((C)->_expression/*0*/);
  2521. /*[IF*/
  2522. if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
  2523. r220compile_to_jvm((T220*)((C)->_then_compound/*4*/));
  2524. }
  2525. /*FI]*/
  2526. C->_point2=r28opcode_goto((T28*)(oBC12code_attribute));
  2527. r28resolve_u2_branch(_point1);
  2528. }
  2529. /*FI]*/
  2530. return R;
  2531. }
  2532.  
  2533.  
  2534. void r230afd_check(T230* C){
  2535. X109afd_check((C)->_expression/*0*/);
  2536. /*[IF*/
  2537. if(((C)->_then_compound/*4*/)!=((void*)(NULL))){
  2538. r220afd_check((T220*)((C)->_then_compound/*4*/));
  2539. }
  2540. /*FI]*/
  2541. }
  2542. /*No:IFTHEN.static_true*/
  2543. /*No:CLIENT_LIST.start_position*/
  2544.  
  2545.  
  2546. T6 r103gives_permission_to_any(T103* C){
  2547. T6 R=0;
  2548. /*[IF*/
  2549. if(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/){
  2550. R=1;
  2551. }
  2552.  else if(((C)->_list/*4*/)==((void*)(NULL))){
  2553. }
  2554. else{
  2555. R=r199gives_permission_to_any((T199*)((C)->_list/*4*/));
  2556. }
  2557. /*FI]*/
  2558. return R;
  2559. }
  2560.  
  2561.  
  2562. void r103merge(T103* C,T0* a1,T0* a2,T0* a3){
  2563. C->_start_position=a1;
  2564. {T199*n=malloc(sizeof(*n));
  2565. *n=M199;
  2566. r199merge(n,a2,a3);
  2567. C->_list=(T0*)n;
  2568. }
  2569. }
  2570. /*No:CLIENT_LIST.is_omitted*/
  2571.  
  2572.  
  2573. T6 r103gives_permission_to(T103* C,T0* a1){
  2574. T6 R=0;
  2575. /*[IF*/
  2576. if(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/){
  2577. R=1;
  2578. }
  2579.  else if(((C)->_list/*4*/)==((void*)(NULL))){
  2580. }
  2581. else{
  2582. R=r199gives_permission_to((T199*)((C)->_list/*4*/),a1);
  2583. }
  2584. /*FI]*/
  2585. /*[IF*/
  2586. if(R){
  2587. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2588. /*]*/
  2589. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  2590. /*]*/
  2591. /*]*/
  2592. }
  2593. else{
  2594. r21add_position((C)->_start_position/*0*/);
  2595. /*[IRF3.6append*/{T0* b1=(((T70*)a1))->_to_string/*0*/;
  2596. r7append((T7*)(oBC21explanation),b1);
  2597. }/*]*/
  2598. /*[IRF3.6append*/{T0* b1=((T0*)ms103_56885);
  2599. r7append((T7*)(oBC21explanation),b1);
  2600. }/*]*/
  2601. }
  2602. /*FI]*/
  2603. return R;
  2604. }
  2605.  
  2606.  
  2607. void r103make(T103* C,T0* a1,T0* a2){
  2608. C->_start_position=a1;
  2609. C->_list=a2;
  2610. }
  2611.  
  2612.  
  2613. T0* r103append(T103* C,T0* a1){
  2614. T0* R=NULL;
  2615. /*[IF*/
  2616. if(((C)==((void*)(a1)))||(/*(IRF4.7is_omitted*/((C)->_start_position/*0*/)==(NULL)/*)*/)){
  2617. R=(T0*)C;
  2618. }
  2619. else{
  2620. /*[IF*/
  2621. if(r103gives_permission_to_any(C)){
  2622. R=(T0*)C;
  2623. }
  2624. else{
  2625. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2626. /*]*/
  2627. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  2628. /*]*/
  2629. /*]*/
  2630. /*[IF*/
  2631. if(/*(IRF4.7is_omitted*/((((T103*)a1))->_start_position/*0*/)==(NULL)/*)*/){
  2632. R=a1;
  2633. }
  2634.  else if(r103gives_permission_to_any(((T103*)a1))){
  2635. R=a1;
  2636. }
  2637. else{
  2638. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2639. /*]*/
  2640. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  2641. /*]*/
  2642. /*]*/
  2643. {T103*n=malloc(sizeof(*n));
  2644. *n=M103;
  2645. r103merge(n,(C)->_start_position/*0*/,(C)->_list/*4*/,(((T103*)a1))->_list/*4*/);
  2646. R=(T0*)n;
  2647. }
  2648. }
  2649. /*FI]*/
  2650. }
  2651. /*FI]*/
  2652. }
  2653. /*FI]*/
  2654. return R;
  2655. }
  2656. /*No:CLIENT_LIST.omitted*/
  2657.  
  2658.  
  2659. T0* r103merge_with(T103* C,T0* a1){
  2660. T0* R=NULL;
  2661. /*[IF*/
  2662. if(r103gives_permission_to_any(C)){
  2663. R=(T0*)C;
  2664. }
  2665.  else if(r103gives_permission_to_any(((T103*)a1))){
  2666. R=a1;
  2667. }
  2668. else{
  2669. {T103*n=malloc(sizeof(*n));
  2670. *n=M103;
  2671. r103merge(n,(C)->_start_position/*0*/,(C)->_list/*4*/,(((T103*)a1))->_list/*4*/);
  2672. R=(T0*)n;
  2673. }
  2674. }
  2675. /*FI]*/
  2676. return R;
  2677. }
  2678. /*No:CLIENT_LIST.list*/
  2679. /*No:FUNCTION.rescue_compound*/
  2680. /*No:FUNCTION.use_current_state*/
  2681.  
  2682.  
  2683. T0* r308run_require(T0* a1){
  2684. T0* R=NULL;
  2685. T0* _ct=NULL;
  2686. T0* _ar=NULL;
  2687. T0* _hc=NULL;
  2688. T0* _er=NULL;
  2689. T0* _r=NULL;
  2690. T2 _i=0;
  2691. r365clear((T365*)(oBC95require_collector));
  2692. _ct=/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/);
  2693. r63collect_for((T63*)(X52base_class(_ct)),1,/*X27name*/((T0*)(((T26*)a1))->_name/*16*/));
  2694. /*[IF*/
  2695. if(!(r365empty((T365*)(oBC95require_collector)))){
  2696. _i=1;
  2697. while (!((_i)>(((T365*)(oBC95require_collector))->_upper/*8*/))) {
  2698. _er=r365item((T365*)(oBC95require_collector),_i);
  2699. _hc=(((T291*)_er))->_header_comment/*4*/;
  2700. /*[IF*/
  2701. if(!(/*(IRF4.7empty*/((((T291*)_er))->_list/*8*/)==(NULL)/*)*/)){
  2702. _r=r308runnable((((T291*)_er))->_list/*8*/,_ct,a1);
  2703. /*[IF*/
  2704. if((_r)!=((void*)(NULL))){
  2705. {T291*n=malloc(sizeof(*n));
  2706. *n=M291;
  2707. r291make_runnable(n,_r,_ct,a1);
  2708. _er=(T0*)n;
  2709. }
  2710. /*[IRF3.3set_header_comment*/((((T291*)(((T291*)_er))))->_header_comment)=(_hc);
  2711. /*]*/
  2712. /*[IF*/
  2713. if((_ar)==((void*)(NULL))){
  2714. _ar=se_ma365(1,
  2715. _er);
  2716. }
  2717. else{
  2718. r365add_last(((T365*)_ar),_er);
  2719. }
  2720. /*FI]*/
  2721. }
  2722. /*FI]*/
  2723. }
  2724. /*FI]*/
  2725. _i=(_i)+(1);
  2726. }
  2727. /*[IF*/
  2728. if((_ar)!=((void*)(NULL))){
  2729. {T367*n=malloc(sizeof(*n));
  2730. *n=M367;
  2731. /*[IRF3.3make*/((((T367*)(n)))->_list)=(_ar);
  2732. /*]*/
  2733. R=(T0*)n;
  2734. }
  2735. }
  2736. /*FI]*/
  2737. }
  2738. /*FI]*/
  2739. return R;
  2740. }
  2741. /*No:FUNCTION.base_class*/
  2742. /*No:FUNCTION.set_rescue_compound*/
  2743.  
  2744.  
  2745. T0* r308start_position(T308* C){
  2746. T0* R=NULL;
  2747. R=X50start_position(/*(IRF4.6first_name*/r87item(((T87*)((C)->_names/*8*/)),1)/*)*/);
  2748. return R;
  2749. }
  2750.  
  2751.  
  2752. T6 r308is_merge_with(T308* C,T0* a1,T0* a2){
  2753. T6 R=0;
  2754. R=1;
  2755. /*[IF*/
  2756. if(((C)->_result_type/*56*/)!=((void*)(X95result_type(a1)))){
  2757. /*[IF*/
  2758. if((((C)->_result_type/*56*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
  2759. R=0;
  2760. }
  2761. /*FI]*/
  2762. }
  2763. /*FI]*/
  2764. /*[IF*/
  2765. if(((C)->_arguments/*24*/)!=((void*)(X95arguments(a1)))){
  2766. /*[IF*/
  2767. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X95arguments(a1))==((void*)(NULL)))){
  2768. R=0;
  2769. }
  2770.  else if((/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T195*)(((T191*)(X95arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  2771. R=0;
  2772. }
  2773. /*FI]*/
  2774. }
  2775. /*FI]*/
  2776. /*[IF*/
  2777. if(R){
  2778. /*[IF*/
  2779. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  2780. R=X52is_a_in((C)->_result_type/*56*/,X95result_type(a1),a2);
  2781. }
  2782. /*FI]*/
  2783. /*[IF*/
  2784. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  2785. R=r191is_a_in((T191*)((C)->_arguments/*24*/),X95arguments(a1),a2);
  2786. }
  2787. /*FI]*/
  2788. /*[IF*/
  2789. if(!(R)){
  2790. R=1;
  2791. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  2792. /*]*/
  2793. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  2794. /*]*/
  2795. /*]*/
  2796. /*[IF*/
  2797. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  2798. R=X52is_a_in(X95result_type(a1),(C)->_result_type/*56*/,a2);
  2799. }
  2800. /*FI]*/
  2801. /*[IF*/
  2802. if((R)&&(((C)->_arguments/*24*/)!=((void*)(NULL)))){
  2803. R=r191is_a_in((T191*)(X95arguments(a1)),(C)->_arguments/*24*/,a2);
  2804. }
  2805. /*FI]*/
  2806. }
  2807. /*FI]*/
  2808. }
  2809. /*FI]*/
  2810. /*[IF*/
  2811. if(R){
  2812. r308merge_header_comments(C,a1);
  2813. }
  2814. /*FI]*/
  2815. return R;
  2816. }
  2817.  
  2818.  
  2819. T0* r308runnable(T0* a1,T0* a2,T0* a3){
  2820. T0* R=NULL;
  2821. T0* _a=NULL;
  2822. T2 _i=0;
  2823. /*[IF*/
  2824. if(!(r108empty(((T108*)a1)))){
  2825. R=r108twin(((T108*)a1));
  2826. _i=(((T108*)R))->_upper/*8*/;
  2827. while (!((_i)==(0))) {
  2828. r22push((T22*)(oBC12small_eiffel),a3);
  2829. _a=r105to_runnable((T105*)(r108item(((T108*)R),_i)),a2);
  2830. /*[IF*/
  2831. if((_a)==((void*)(NULL))){
  2832. r308error(r105start_position((T105*)(r108item(((T108*)R),_i))),((T0*)ms13_14266));
  2833. }
  2834. else{
  2835. /*[IRF3.6put*/{T108* C1=((T108*)R);
  2836. T0* b1=_a;
  2837. T2 b2=_i;
  2838. ((C1)->_storage/*0*/)[(b2)-((C1)->_lower/*12*/)]=(b1);
  2839. }/*]*/
  2840. }
  2841. /*FI]*/
  2842. r22pop((T22*)(oBC12small_eiffel));
  2843. _i=(_i)-(1);
  2844. }
  2845. }
  2846. /*FI]*/
  2847. return R;
  2848. }
  2849. /*No:FUNCTION.not_computed*/
  2850. /*No:FUNCTION.first_name*/
  2851. /*No:FUNCTION.em1*/
  2852. /*No:FUNCTION.header_comment*/
  2853. /*No:FUNCTION.names*/
  2854. /*No:FUNCTION.fz_03*/
  2855. /*No:FUNCTION.result_type*/
  2856. /*No:FUNCTION.code_require*/
  2857. /*No:FUNCTION.make_e_feature*/
  2858.  
  2859.  
  2860. void r308add_into(T308* C,T0* a1){
  2861. T0* _fn=NULL;
  2862. T2 _i=0;
  2863. C->_base_class=r59base_class((T59*)(X50start_position(r87item((T87*)((C)->_names/*8*/),1))));
  2864. _i=1;
  2865. while (!((_i)>(r87count((T87*)((C)->_names/*8*/))))) {
  2866. _fn=r87item((T87*)((C)->_names/*8*/),_i);
  2867. /*[IF*/
  2868. if(r94has(((T94*)a1),X50to_key(_fn))){
  2869. _fn=/*X95first_name*/((T0*)/*(IRF4.6first_name*/r87item(((T87*)(((T203*)(r94at(((T94*)a1),X50to_key(_fn))))->_names/*8*/)),1)/*)*/);
  2870. r21add_position(X50start_position(_fn));
  2871. r21add_position(X50start_position(r87item((T87*)((C)->_names/*8*/),_i)));
  2872. r21error((T21*)(oBC12eh),((T0*)ms95_41905));
  2873. /*[IRF3.6append*/{T0* b1=X50to_string(_fn);
  2874. r7append((T7*)(oBC21explanation),b1);
  2875. }/*]*/
  2876. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  2877. }
  2878. else{
  2879. r94put(((T94*)a1),(T0*)C,X50to_key(_fn));
  2880. }
  2881. /*FI]*/
  2882. _i=(_i)+(1);
  2883. }
  2884. }
  2885.  
  2886.  
  2887. T6 r308can_hide(T308* C,T0* a1,T0* a2){
  2888. T6 R=0;
  2889. /*[IF*/
  2890. if(((C)->_result_type/*56*/)!=((void*)(X95result_type(a1)))){
  2891. /*[IF*/
  2892. if((((C)->_result_type/*56*/)==((void*)(NULL)))||((X95result_type(a1))==((void*)(NULL)))){
  2893. r21add_position(X95start_position(a1));
  2894. r308error(r308start_position(C),((T0*)ms95_64647));
  2895. }
  2896. /*FI]*/
  2897. }
  2898. /*FI]*/
  2899. /*[IF*/
  2900. if(((C)->_arguments/*24*/)!=((void*)(X95arguments(a1)))){
  2901. /*[IF*/
  2902. if((((C)->_arguments/*24*/)==((void*)(NULL)))||((X95arguments(a1))==((void*)(NULL)))){
  2903. r21add_position(X95start_position(a1));
  2904. r308error(r308start_position(C),((T0*)ms95_83182));
  2905. }
  2906.  else if((/*(IRF4.6count*/(((T195*)(((T191*)((C)->_arguments/*24*/))->_flat_list/*8*/)))->_upper/*12*//*)*/)!=(/*(IRF4.6count*/(((T195*)(((T191*)(X95arguments(a1)))->_flat_list/*8*/)))->_upper/*12*//*)*/)){
  2907. r21add_position(X95start_position(a1));
  2908. r308error(r308start_position(C),((T0*)ms95_67155));
  2909. }
  2910. /*FI]*/
  2911. }
  2912. /*FI]*/
  2913. /*[IF*/
  2914. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2915. /*[IF*/
  2916. if(((C)->_result_type/*56*/)!=((void*)(NULL))){
  2917. /*[IF*/
  2918. if(!(X52is_a_in((C)->_result_type/*56*/,X95result_type(a1),a2))){
  2919. /*[IRF3.6append*/{T0* b1=((T0*)ms95_54285);
  2920. r7append((T7*)(oBC21explanation),b1);
  2921. }/*]*/
  2922. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
  2923. r7append((T7*)(oBC21explanation),b1);
  2924. }/*]*/
  2925. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  2926. }
  2927. /*FI]*/
  2928. }
  2929. /*FI]*/
  2930. }
  2931. /*FI]*/
  2932. /*[IF*/
  2933. if((/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0)){
  2934. /*[IF*/
  2935. if(((C)->_arguments/*24*/)!=((void*)(NULL))){
  2936. /*[IF*/
  2937. if(!(r191is_a_in((T191*)((C)->_arguments/*24*/),X95arguments(a1),a2))){
  2938. r21add_position(X95start_position(a1));
  2939. r21add_position(r308start_position(C));
  2940. /*[IRF3.6append*/{T0* b1=((T0*)ms95_54285);
  2941. r7append((T7*)(oBC21explanation),b1);
  2942. }/*]*/
  2943. /*[IRF3.6append*/{T0* b1=X52run_time_mark((((T23*)a2))->_current_type/*0*/);
  2944. r7append((T7*)(oBC21explanation),b1);
  2945. }/*]*/
  2946. r21error((T21*)(oBC12eh),((T0*)ms13_47));
  2947. }
  2948. /*FI]*/
  2949. }
  2950. /*FI]*/
  2951. }
  2952. /*FI]*/
  2953. R=(/*(IRF4.9nb_errors*/((T21*)(oBC12eh))->_nb_errors/*4*//*)*/)==(0);
  2954. /*[IF*/
  2955. if(R){
  2956. r308merge_header_comments(C,a1);
  2957. }
  2958. /*FI]*/
  2959. return R;
  2960. }
  2961. /*No:FUNCTION.ensure_assertion*/
  2962.  
  2963.  
  2964. T0* r308run_ensure(T0* a1){
  2965. T0* R=NULL;
  2966. T0* _ct=NULL;
  2967. T0* _r=NULL;
  2968. r108clear((T108*)(oBC95assertion_collector));
  2969. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2970. ((((T364*)((T364*)(oBC95header_comment_memory))))->_item)=(_default_item);
  2971. }/*]*/
  2972. _ct=/*X27current_type*/((T0*)(((T26*)a1))->_current_type/*4*/);
  2973. r63collect_for((T63*)(X52base_class(_ct)),2,/*X27name*/((T0*)(((T26*)a1))->_name/*16*/));
  2974. _r=r308runnable(oBC95assertion_collector,_ct,a1);
  2975. /*[IF*/
  2976. if((_r)!=((void*)(NULL))){
  2977. {T219*n=malloc(sizeof(*n));
  2978. *n=M219;
  2979. r219make_runnable(n,_r,_ct,a1);
  2980. R=(T0*)n;
  2981. }
  2982. /*[IRF3.3set_header_comment*/((((T219*)(((T219*)R))))->_header_comment)=(((T364*)(oBC95header_comment_memory))->_item/*0*/);
  2983. /*]*/
  2984. /*[IRF3.3clear*/{T0* _default_item=NULL;
  2985. ((((T364*)((T364*)(oBC95header_comment_memory))))->_item)=(_default_item);
  2986. }/*]*/
  2987. }
  2988. /*FI]*/
  2989. return R;
  2990. }
  2991.  
  2992.  
  2993. void r308check_obsolete(T308* C){
  2994. /*[IF*/
  2995. if(!(((T22*)(oBC12small_eiffel))->_short_flag/*8*/)){
  2996. /*[IF*/
  2997. if(((C)->_obsolete_mark/*28*/)!=((void*)(NULL))){
  2998. /*[IRF3.6append*/{T0* b1=((T0*)ms218_39396);
  2999. r7append((T7*)(oBC21explanation),b1);
  3000. }/*]*/
  3001. /*[IRF3.6append*/{T0* b1=((T174*)((C)->_obsolete_mark/*28*/))->_to_string/*8*/;
  3002. r7append((T7*)(oBC21explanation),b1);
  3003. }/*]*/
  3004. r308warning(r308start_position(C),((T0*)ms13_166));
  3005. }
  3006. /*FI]*/
  3007. }
  3008. /*FI]*/
  3009. }
  3010.  
  3011.  
  3012. T0* r308try_to_undefine(T308* C,T0* a1,T0* a2){
  3013. T0* R=NULL;
  3014. T0* _fn2=NULL;
  3015. r21add_position(X50start_position(a1));
  3016. _fn2=r87feature_name((T87*)((C)->_names/*8*/),X50to_key(a1));
  3017. /*[IF*/
  3018. if((_fn2)!=((void*)(NULL))){
  3019. X50undefine_in(_fn2,a2);
  3020. }
  3021. /*FI]*/
  3022. /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)((T7*)(oBC21explanation))))->_count)=(0);
  3023. /*]*/
  3024. /*[IRF3.3clear*/((((T58*)((T58*)(oBC21positions))))->_upper)=(-(1));
  3025. /*]*/
  3026. /*]*/
  3027. R=r308try_to_undefine_aux(C,a1,a2);
  3028. /*[IF*/
  3029. if((R)!=((void*)(NULL))){
  3030. /*X289set_clients*//*[IRF3.3set_clients*/((((T292*)(((T292*)R))))->_clients)=((C)->_clients/*20*/);
  3031. /*]*/
  3032. r308merge_header_comments(C,R);
  3033. }
  3034. else{
  3035. r63fatal_undefine(((T63*)a2),a1);
  3036. }
  3037. /*FI]*/
  3038. return R;
  3039. }
  3040. /*No:FUNCTION.is_deferred*/
  3041. /*No:FUNCTION.set_clients*/
  3042. /*No:FUNCTION.nb_errors*/
  3043. /*No:FUNCTION.code_ensure*/
  3044.  
  3045.  
  3046. void r308make_routine(T308* C,T0* a1,T0* a2,T0* a3,T0* a4,T0* a5){
  3047. /*[IRF3.3make_e_feature*/((((T308*)(C)))->_names)=(a1);
  3048. /*]*/
  3049. C->_header_comment=a4;
  3050. C->_arguments=a2;
  3051. C->_obsolete_mark=a3;
  3052. C->_require_assertion=a5;
  3053. }
  3054.  
  3055.  
  3056. T0* r308to_run_feature(T308* C,T0* a1,T0* a2){
  3057. T0* R=NULL;
  3058. r308check_obsolete(C);
  3059. {T388*n=malloc(sizeof(*n));
  3060. *n=M388;
  3061. r388make(n,a1,a2,(T0*)C);
  3062. R=(T0*)n;
  3063. }
  3064. return R;
  3065. }
  3066.  
  3067.  
  3068. void r308merge_header_comments(T308* C,T0* a1){
  3069. /*[IF*/
  3070. if(((T22*)(oBC12small_eiffel))->_short_flag/*8*/){
  3071. /*[IF*/
  3072. if(((C)->_header_comment/*12*/)==((void*)(NULL))){
  3073. C->_header_comment=/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/);
  3074. }
  3075.  else if((/*X95header_comment*/((T0*)(((T203*)a1))->_header_comment/*12*/))==((void*)(NULL))){
  3076. X95set_header_comment(a1,(C)->_header_comment/*12*/);
  3077. }
  3078. /*FI]*/
  3079. }
  3080. /*FI]*/
  3081. }
  3082. /*No:FUNCTION.arguments*/
  3083. /*No:FUNCTION.require_assertion*/
  3084.  
  3085.